愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

MySQL 日付関数のあんちょこ

こういうのは一時的に詳しくなって、どうせ2ヶ月後には忘れてるものだからあんちょこを書いておくのだ。
ちなみに全てbestな方法かは知らないのだ。

次の火曜日

SELECT DATE_ADD(CURDATE(), INTERVAL (IF(@day_of_week <= 2, 3 - @day_of_week, 10 - @day_of_week)) DAY);

次の月の2日

SELECT DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 2 DAY);

前日曜日の00:00のunixtime

SELECT UNIX_TIMESTAMP(DATE_SUB(DATE(FROM_UNIXTIME(?)), INTERVAL (DAYOFWEEK(DATE(FROM_UNIXTIME(?))) - 1) DAY));

今月1日の00:00のunixtime

SELECT UNIX_TIMESTAMP(DATE_SUB(DATE(FROM_UNIXTIME(?)), INTERVAL (DAY(DATE(FROM_UNIXTIME(?))) - 1) DAY));

なんか思ったより種類がなかった。