日時を扱ういろいろ MySQL版
※MySQLを前提として書いています
現在日時の取得
-- YYYY-MM-DD hh:mm:ss SELECT NOW()
月の最終日の取得
-- 2013-06-10 を渡すと 2013-06-30 SELECT LAST_DAY(日付)
フォーマットして取得
SELECT DATE_FORMAT(日付, フォーマット)
フォーマット部分
- %Y 西暦年(4桁)
- %y 西暦年(2桁)
- %m 月(2桁ゼロ詰め)
- %c 月(ゼロ詰めなし)
- %d 日(2桁ゼロ詰め)
- %j 日(ゼロ詰めなし)
- %W 曜日(英語)
- %w 曜日(日:0、月:1、…、土:6)
- %k 時(24時間表記)
- %i 分
- %s 秒
フォーマット例:「2013/06/09」→ %Y/%m/%d
ここまで覚えておけば組み合わせで大体のことはできそうです
まあ覚えられないので書いてるんですけどね。
以下は蛇足。
現在日時の取得
SELECT current_timestamp -- YYYY-MM-DD hh:mm:ss ,current_date -- YYYY-MM-DD ,CURDATE() -- YYYY-MM-DD ,current_time -- hh:mm:ss ,CURTIME() -- hh:mm:ss
曜日の取得
SELECT WEEKDAY(日付) -- 月:0、火:1、…、日:6 ,DAYOFWEEK(日付) -- 日:1、月:2、…、土:7
これに加え、フォーマット指定の「%w」が「日:0、月:1、…、土:6」と
すべて戻り値が異なるので、
好みの方法で統一しておく方がリスクが少ない。
尚、PHPでのフォーマットにも
- 月:1、火:2、…、日:7
- 日:0、月:1、…、土:6
と2通りあり、合わせる必要がある場合はフォーマット指定を利用するとよい。
すごくまぎらわしい。