1.環境と経緯
環境:WindowsServer、MariaDB
経緯:「年-月-日」「年-月-日 時」、「年-月-日 時:分」でGroup byをしてアクセス数の集計を行いたかったが、DATETIMEしかなく、てんやわんやしてしまった。
2.解決方法
2-1.年-月-日の場合
DATE(DATETIMEのカラム)を使用する。date_formatでもできるらしいが、いちいちフォーマットを指定するのも面倒くさいので。
SELECT COUNT(*), DATE(DATETIMEのカラム) FROM SAMPLE GROUP BY DATE(DATETIMEのカラム);
2-2.年-月-日 時の場合
date_format(DATETIMEのカラム, ‘%Y-%m-%d %H’)を使用する。
SELECT COUNT(*), date_format(DATETIMEのカラム, '%Y%m%d %H') FROM SAMPLE GROUP BY date_format(DATETIMEのカラム, '%Y%m%d %H');
2-3.年-月-日 時:分の場合
「そうか!date_format(DATETIMEのカラム, ‘%Y-%m-%d %H:%M’)だな!」と早とちりしたら違った。
date_format(DATETIMEのカラム, ‘%Y-%m-%d %H:%i’)を使用するみたい。iはどこからやってきた。
SELECT COUNT(*), date_format(DATETIMEのカラム, '%Y-%m-%d %H:%i') FROM SAMPLE GROUP BY date_format(DATETIMEのカラム, '%Y-%m-%d %H:%i');
3.参考サイト
その他の表現フォーマットは下記サイトをご覧ください。
DATE_FORMAT関数/TIME_FORMAT関数(日付または時刻を指定したフォーマットで整形する)
MySQL で DATE_FORMAT 関数を使用すると引数に指定した日付を表す値を指定のフォーマットで整形した文字列を取得することができます。また TIME_FORMAT 関数を使用すると時刻を表す値を指定のフォーマットで整形した文字列を取得することができます。ここでは MySQL における DATE_FORMAT ...
コメント