ホームページ > データベース > mysql チュートリアル > 今後 14 日間に記念日があるイベントを検索するには (年は無視します)?

今後 14 日間に記念日があるイベントを検索するには (年は無視します)?

Mary-Kate Olsen
リリース: 2025-01-02 21:11:39
オリジナル
782 人が閲覧しました

How to Find Events with Anniversaries in the Next 14 Days (Ignoring the Year)?

年を無視して日付計算を実行する方法

このタスクは、次の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート