如何執行忽略年份的日期數學
任務是選擇在接下來的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中文網其他相關文章!