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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-23 04:57:37409ブラウズ

How Can I Create a DATE Object in MySQL from Separate Day, Month, and Year Fields?

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

個別の日付を含む「日付」テーブルを持つデータベース スキーマ内「日」、「月」、および「年」のフィールドを使用するには、比較用の日付オブジェクトを作成する必要があります。この記事では、これらの整数値から日付オブジェクトを構築するためのソリューションの概要を説明します。

MAKEDATE() 関数と DATE_ADD() 関数を使用すると、年、月、日のコンポーネントから DATETIME を作成できます。 MAKEDATE() は、指定された年の最初の日を表す DATETIME を生成します。その後、DATE_ADD() を適用して月と日の値を追加できます。

例:

SELECT MAKEDATE(2013, 1);
+-------------------+
| MAKEDATE(2013, 1) |
+-------------------+
| 2013-01-01        |
+-------------------+

月と日の値を組み込むには:

SELECT DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH);
+---------------------------------------------------+
| DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH) |
+---------------------------------------------------+
| 2013-03-01                                        |
+---------------------------------------------------+

複数の DATE_ADD() 呼び出しを組み合わせると、正確な日付が可能になります構築:

SELECT DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY);
| DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY) |
+----------------------------------------------------------------------------------+
| 2013-03-11                                                                       |
+----------------------------------------------------------------------------------+

この手法を使用して日付範囲クエリを実行するには:

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';

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。