ホームページ >データベース >mysql チュートリアル >MySQL で日、月、年の個別のフィールドから DATE オブジェクトを作成するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。