第71天 我的学习之旅!
Source: Dev.to
使用即将到来的星期三逻辑
今天的挑战是逻辑与 SQL 日期函数的有趣组合。
创建一个包含姓名和预约日期的表,然后编写一个查询,始终返回在即将到来的星期三之前安排的所有预约,基于当前日期。
虽然听起来很简单,但难点在于动态计算下一个星期三。
表定义
CREATE TABLE appointments (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
appointment_date DATE
);
示例数据
INSERT INTO appointments (name, appointment_date) VALUES
('John', '2025-01-13'),
('Sarah', '2025-01-15'),
('Michael', '2025-01-10'),
('Anna', '2025-01-14');
查询即将到来的星期三之前的预约
SELECT name, appointment_date
FROM appointments
WHERE appointment_date < (
CURRENT_DATE + ((3 - EXTRACT(DOW FROM CURRENT_DATE) + 7) % 7)
);
工作原理
EXTRACT(DOW FROM CURRENT_DATE)返回当前星期几(0 = 星期日,1 = 星期一,… 3 = 星期三,… 6 = 星期六)。(3 - dow + 7) % 7计算距离下一个星期三(第 3 天)还有多少天。- 将这个偏移量加到
CURRENT_DATE上即可得到即将到来的星期三的日期。
该查询返回所有在该日期之前的预约。
这种动手练习非常适合巩固 SQL 基础并学习如何处理动态日期逻辑——这是在实际数据工作中会经常用到的技能。日复一日,挑战不断,我对 SQL 的信心也在逐步提升。
#SQL #DataEngineering #Database #LearningJourney #WomenInTech #CareerGrowth #DataDriven #RamyaAnalyticsJourney