勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLでデータの集計時に1日の起点を任意の時間に変更する方法

   2024/01/16  MySQL データベース

MySQLで1日毎の集計を行う際、例えば2020/01/01のデータは2020/01/01 00:00:00 ~ 2020/01/01 23:59:59になるが、「00:00:00」の部分を任意に指定したいというケースがあった。例えば5時を起点とすると2020/01/01 05:00:00 ~ 2020/01/02 05:00:00を2020/01/01のデータとして取り扱いたい(正確には4:59:59だが省略)。以下対応方法のメモ。

 

SQL文

以下の通りdate_format時に起点の時間分マイナスにすることで対応できる。

date_format((ymd - interval 5 hour), "%Y-%m-%d") AS format_ymd

 

注意点

Where句でymd検索した場合はdate_formatされる前のデータを対象に検索するっぽい。

 - MySQL データベース

  関連記事

MySQLにてUUIDを発行しプライマリキー(主キー)にする方法

普段MySQLでプライマリキー(主キー)を使う場合、オートインクリメントを利用し ...

MySQLでIPアドレスを数値として入れると変な値になる場合の対処方法

MySQLでIPアドレスをINET_ATON関数を用いてINT型に変換し格納する ...

MySQLで直近〇日、〇ヶ月、〇年以内のデータを検索する方法

他社が作成されたSQL文を見ているとDATE_ADDという使ったことの無い関数が ...

MySQLで「doesn't have a default value」エラーの対処

MySQLでINSERT時に「Field 'カラム名' doesn't have ...

MySQLでオートインクリメントを使用せずにグループ毎に連番を設定する方法

MySQLでオートインクリメントを使用せずにグループ毎で連番を割り振りたかった。 ...