見出し画像

SQL分析データ準備と基礎統計#06:日付時刻データ

日付や日付時刻のデータが数値型で保管されているケースがあります。インターバルの計算などを行うことを考えた場合、日付(date)型、もしくは日付時刻(timestamp)型で保持した方が良いのですが、そうでない場合は変換をしておきます。


日付が数値型

日付が数値型の場合、年4桁、月2桁、日2桁の合計8桁で保持されますが、厄介なのは、本来あり得ない日付(例: 20201345、2020123)がセットされているケースがあることです。このときに取るべき行動は二つに一つ、拿捕するか沈めるかなのですが、いずれにしてもそれを特定、変換する必要があります。

Teradataデータベースにはカレンダーテーブルがあるため、これを用います。日付型で保持されているカラムを数値型に直してあげ、これを結合キーにして変換したいテーブルに結合します。これによってカレンダーテーブル側におけるもともとの日付型カラムを日付データとして採用することができます。日付がおかしな行を削除したければinner joinで、残しておきたければleft outer joinすればnullで残ります。


時分秒が数値型

時分秒はそれぞれ0から60の範囲をとりますが、これもこの範囲を逸脱するケースと、桁がおかしいケースがあります。明らかに桁がおかしいケースはともかく、数値型の場合、いわゆるゼロ落ちも発生します。例えば0時0分0秒は、0とセットされてしまい、5桁分のゼロが落ちてしまうといった具合です。これらを整理し、'2022-03-04 12:31:01'のような形式に文字型で整えてから日付時刻型に変換します。

///

#sql #teradata #analytics  


この記事が気に入ったらサポートをしてみませんか?