「2012-07-12」の場合、週の始まり、つまり「2012-07-08」と月の始まり、つまり「2012-07-01」を取得するにはどうすればよいですか?
質問する
21952 次
5 に答える
30
月の初日:
SELECT DATE_FORMAT('2007-07-12', '%Y-%m-01');
出力:2007-07-01
週の最初の日:
SELECT DATE_SUB('2007-07-12', INTERVAL DAYOFWEEK('2007-07-12')-1 DAY);
出力:2007-07-08
MySQLリファレンス:http ://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
于 2012-07-12T23:00:50.020 に答える
11
Borophyll のと同じ回答ですが、 user151220 の回答に記載されている日付の書式設定/解析を回避する文字列だけでなく、日付を返すように月の初日の動作を変更しました。
月の最初の日:
SELECT DATE_SUB('2007-07-12', INTERVAL DAYOFMONTH('2007-07-12') - 1 DAY);
出力:2007-07-01
週の最初の曜日:
SELECT DATE_SUB('2007-07-12', INTERVAL DAYOFWEEK('2007-07-12') - 1 DAY);
出力:2007-07-08
MySQL リファレンス: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add
于 2014-11-13T08:03:05.537 に答える
0
これは、コーディングして忘れる場合に機能します。現在はdatetimeを使用し、常にMTD結果を返します-
where date_completed between date_sub(date(now()), INTERVAL dayofmonth(now()) -1 day) and now()
于 2016-07-26T15:32:01.723 に答える