ホームページ >データベース >mysql チュートリアル >MySQL で日、月、年の個別のフィールドから日付を構築する方法
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 ロジックを使用できます:
例クエリ
作成された日付が特定の範囲内にある「日付」テーブル内のすべての行を選択するには:
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 サイトの他の関連記事を参照してください。