sql >> データベース >  >> RDS >> Mysql

MySQLの日、月、年のフィールドから日付を作成します

    年、月、日の整数値がある場合は、MAKEDATE()とDATE_ADD()を組み合わせてDATETIMEを作成できます。定数日が1のMAKEDATE()は、指定された年の最初の日のDATETIMEを提供し、次にDATE_ADD()を使用して月と日を追加できます:

    mysql> SELECT MAKEDATE(2013, 1);
    +-------------------+
    | MAKEDATE(2013, 1) |
    +-------------------+
    | 2013-01-01        |
    +-------------------+
    
    mysql> SELECT DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH);
    +---------------------------------------------------+
    | DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH) |
    +---------------------------------------------------+
    | 2013-03-01                                        |
    +---------------------------------------------------+
    
    mysql> 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                                                                       |
    +----------------------------------------------------------------------------------+
    

    したがって、OPの質問に答えるには:

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


    1. nから始まるmySQLのn番目ごとの行を選択する方法

    2. MySQLの左結合:1つのテーブルからすべてを選択しますが、2番目のテーブルの値と条件が一致する場合のみ

    3. Oracle Pivotクエリは、列名を引用符で囲んだ列を提供します。何?

    4. SQL Server 2014StandardEditionの常識的なライセンスの変更