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

MySQLはYEARWEEKを日付に変換します

    年週が予想される「モード」になっていることに注意する必要があります。 ( https://devを参照してください。 .mysql.com / doc / refman / 5.7 / en / date-and-time-functions.html#function_week

    STR_TO_DATEで使用されるフォーマットは一致する必要があります。 ( https:/を参照してください。 /dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

    例えばモード2を使用している場合(1-53、第1週は日曜日が含まれる最初の週であり、週は日曜日から始まります)

    SELECT STR_TO_DATE(CONCAT('201439',' Sunday'), '%X%V %W');
    

    例えばモード3(ISO-8601に準拠)を使用する場合(1-53、第1週は月曜日から始まる4日以上の最初の週)、小文字バージョンを使用する必要があります。

    SELECT STR_TO_DATE(CONCAT('201439',' Monday'), '%x%v %W');
    

    したがって、次のようになります(2014-09-28は日曜日です):

    SELECT yearweek('2014-09-28', 2);
    201439
    SELECT yearweek('2014-09-28', 3);
    201439
    SELECT yearweek('2014-09-29', 2);
    201439
    SELECT yearweek('2014-09-29', 3);
    201440
    

    次に

    SELECT STR_TO_DATE(CONCAT('201439',' Sunday'), '%X%V %W'); -- mode 2
    2014-09-28
    SELECT STR_TO_DATE(CONCAT('201439',' Monday'), '%x%v %W'); -- mode 3 
    2014-09-22
    SELECT STR_TO_DATE(CONCAT('201440',' Monday'), '%x%v %W'); -- mode 3
    2014-09-29
    


    1. 並列計画の開始方法–パート5

    2. テーブルを書くためのSQLステートメント?

    3. シーケンスとトリガーを使用したOracleの自動インクリメントが正しく機能していません

    4. 同一サーバーのさまざまな計画