ホームページ > データベース > mysql チュートリアル > MySQL で年、月、日の別々のフィールドから日付オブジェクトを作成するにはどうすればよいですか?

MySQL で年、月、日の別々のフィールドから日付オブジェクトを作成するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-04 22:53:44
オリジナル
373 人が閲覧しました

How Can I Create Date Objects from Separate Year, Month, and Day Fields in MySQL?

MySQL の異なる日付フィールドから日付オブジェクトを作成する

データベース スキーマの日付表現が個々の日、月、および year フィールドは、SQL での日付操作に独特の課題をもたらします。ただし、次のアプローチを使用すると、これらの個別のフィールドから日付オブジェクトを効果的に構築できます。

年、月、日を表す整数値から DATETIME オブジェクトを作成するには、MAKEDATE() と DATE_ADD() の組み合わせを利用します。 ) 関数。

  1. MAKEDATE(): この関数は、年と月を (定数を使用して) 結合します。
  2. DATE_ADD(): この関数は、指定された月数と日数 (またはその他の指定された時間間隔) を加算します。 ) を指定された DATETIME オブジェクトに変換します。

これらの関数を組み合わせることで、日付を構築できます徐々に:

  • MAKEDATE() で開始し、年の最初の日の DATETIME オブジェクトを取得します。
  • DATE_ADD() を使用して月を追加します (月を考慮して 1 を減算します)。 1 から始まる整数表現)。
  • 別の DATE_ADD() を適用して日を追加します (再度、整数の性質に合わせて 1 を減算します)。

例:

SELECT DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY);
ログイン後にコピー

このクエリは、2013 年 3 月 11 日の DATETIME オブジェクトを返します。

この手法を使用して、SQL で比較するための日付範囲を構築できるようになりました。クエリ:

SELECT *
FROM `date`
WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY)
BETWEEN '2013-01-01' AND '2014-01-01';
ログイン後にコピー

このクエリは、2013 年 1 月 1 日から 2014 年 1 月 1 日までの日付を持つすべてのレコードを日付テーブルから取得します。

以上がMySQL で年、月、日の別々のフィールドから日付オブジェクトを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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