勉強したことのメモ

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でtext型カラムに入っている数値をint型としてソートする

MySQLでtext型として指定されているカラムがあり、その中には文字列であった ...

MySQLのview(ビュー)で仮想的なテーブルを作成する方法

MySQL関連のサイトを見ているとview(ビュー)が云々という記事を見かけた。 ...

MySQLで全角半角を区別せずに検索する方法(collate utf8_unicode_ci)

あるシステムでMySQLの検索時に「WHERE test_column coll ...

MySQLでスレッドの実行状況を表示しスレッドの経過時間チェックや特定スレッドを強制終了する方法

データベースサーバが重たく、原因を調査する機会があった。サーバ自体のメモリやCP ...

MySQLのTEMPORARY TABLE(テンポラリテーブル)で高速化を図る方法

MySQLで5000万件ぐらいデータが入っているテーブルから日本語検索しないとい ...