2024.1.6
DATETIMEを「年-月-日」や「年-月-日 時」、「年-月-日 時:分」でGroup byする方法【SQL・備忘録】


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.参考サイト
その他の表現フォーマットは下記サイトをご覧ください。