以前DATETIME_ADD関数の使い方について紹介しました。
今回はトレーニングデータという実践的なデータを使ってDATETIME_ADD関数の使い方を紹介します。
おさらい
DATETIME_ADD関数はこのように書きました。
DATETIME_ADD(DATETIME型データ, INTERVAL 数値(int型) 単位(SECOND, MINUTEなど))
INTERVALの後は進む時間とその単位を書きましたね。
下のように書けば出力される値は2023年1月1日 00時10分00秒となります。
DATETIME_ADD('2023-01-01 00:00:00, INTERVAL 10 HOUR)
サンプルデータ 〜終了時間を求める〜
ここにトレーニング記録がありました。
開始時間とトレーニングをした時間はありますが終了時間が分かりません。

SELECT
menu AS `トレーニングメニュー`,
start_datetime AS `開始時間`,
interval_minutes AS `トレーニング時間_分`
FROM
`sql-book-384011.sample.20230805_training_menu`
DATETIME_ADD関数を使って終了時間を求めましょう。
DATETIME_ADD関数を使う

SELECT
menu AS `トレーニングメニュー`,
start_datetime AS `開始時間`,
interval_minutes AS `トレーニング時間_分`,
DATETIME_ADD(start_datetime, INTERVAL interval_minutes MINUTE) AS `終了時間`
FROM
`sql-book-384011.sample.20230805_training_menu`
開始時間とトレーニング時間をもとに終了時間が求まりました。
元データ(データソース)を見るとカラムが不足していることもあるでしょう。この場合は設計ミスというよりそもそも集計する前提のためカラムがないと考えたほうが良いですね。
たとえ取得したい終了時間がなくても開始時間とインターバル時間があれば求められるので、そんなときはDATETIME_ADD関数を使いましょう!
まとめ
DATETIME_ADD関数の使い方について実践的なデータを使って紹介しました。
初めから必要なカラムが揃っていないことは分析業務ではあるあるでしょう。
「ない場合は作れば良い」
そのために色んな関数が用意されているので出力したい数値が既存のデータから求められないか試行錯誤したら良いのかなと思いました。
DATETIME_ADD関数も業務ではよく使われます。
これを機会にマスターしましょう!