如何执行忽略年份的日期数学
任务是选择在接下来的 14 天内有周年纪念日的日期,不包括计算年份。
示例查询
方法 1:生成一系列周年纪念日
WITH anniversaries AS ( SELECT event_id, event_date, (event_date + (n || ' years')::interval)::date AS anniversary FROM event, generate_series(13, 113) n ) SELECT event_id, event_date FROM anniversaries WHERE anniversary BETWEEN current_date AND current_date + interval '14' day;
方法 2:计算周年纪念日
SELECT event_id, event_date FROM event WHERE extract(month FROM age(current_date + 14, event_date)) = 0 AND extract(day FROM age(current_date + 14, event_date)) <= 14;
方法 3:使用函数
CREATE OR REPLACE FUNCTION this_years_birthday(_dut date) RETURNS date LANGUAGE sql AS $func$ SELECT (date_trunc('year', now()) + ( - date_trunc('year', )))::date $func$; SELECT * FROM event e WHERE this_years_birthday(event_date) BETWEEN current_date AND (current_date + 14);
注意:
以上是如何查找未来 14 天内有周年纪念日的事件(忽略年份)?的详细内容。更多信息请关注PHP中文网其他相关文章!