年を無視して日付計算を実行する方法
このタスクは、次の 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 中国語 Web サイトの他の関連記事を参照してください。