【BigQuery】連続する数字を日付にする

連続する数字を日付にしたい

例えば、下記のような数字が入ったdというフィールドがあるとします。

20200120144300

これを日付にするにはどうすればよいでしょうか?

cast(d AS datetime)

上記のようにそのまま変換するとエラーがでます。

 

日付の表記規則に整えて日付に変換する

そこで、CONTATとSUBSTRを用いて日付の表記に整えてから、CASTで日付形式に変換します。

SELECT
CAST( CONCAT( SUBSTR(CAST(d AS string),1,4),'-',
SUBSTR(CAST(d AS string),5,2),'-',
SUBSTR(CAST(d AS string),7,2),' ',
SUBSTR(CAST(d AS string),9,2),':',
SUBSTR(CAST(d AS string),11,2),':',
SUBSTR(CAST(d AS string),13,2) ) AS datetime) AS time,
cast(d as datetime) as a
FROM
data

 

結果

上記のようなクエリを書くと、

20200120110900

2020-01-20T11:09:00

のように日付形式に変換できます。

タイトルとURLをコピーしました