ホームページ >データベース >mysql チュートリアル >MySQL で日、月、年の個別のフィールドから日付を構築する方法

MySQL で日、月、年の個別のフィールドから日付を構築する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 07:46:54292ブラウズ

How to Construct a Date in MySQL from Separate Day, Month, and Year Fields?

MySQL の個々の日、月、年のフィールドから日付を作成する

データベース アプリケーションでは、多くの場合、日付を構築する必要が生じます。比較やその他の処理のために、日、月、年のフィールドを分けます。これは、データベース スキーマが、日付コンポーネントを非標準的な方法で保存することを選択した以前の設計から継承されている場合に特に関係します。

問題ステートメント (改訂版)

この質問は、統合された日付ではなく、「日」、「月」、「年」の個別のフィールドを持つテーブルから SQL で日付オブジェクトを作成することに関するものです。 分野。目的は、BETWEEN 句を使用してこれらの日付をユーザー入力範囲と比較することです。

データベース スキーマ

次は、「日付」に提供されるスキーマです。テーブル:

CREATE TABLE IF NOT EXISTS `date` (
  `deposition_id` varchar(11) NOT NULL default '',
  `day` int(2) default NULL,
  `month` int(2) default NULL,
  `year` int(4) default NULL,
  PRIMARY KEY  (`deposition_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ソリューション

これらの個々のコンポーネントから日付オブジェクトを作成するには、次の SQL ロジックを使用できます:

  1. 年と月から日付を構築する: 定数の日を指定して MAKEDATE() 関数を使用します。 1 を使用して、指定した年と月の最初の日を表す DATETIME を取得します。
  2. 月と日で日付を調整: DATE_ADD() 関数を適用して、それに応じて月と日の値を追加します。初期日時。

例クエリ

作成された日付が特定の範囲内にある「日付」テーブル内のすべての行を選択するには:

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

このクエリは、結合された日付が作成されたすべての行を返します。個々のフィールドの日付は、指定された 2 つの日付の間です。

以上がMySQL で日、月、年の個別のフィールドから日付を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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