by shigemk2

当面は技術的なことしか書かない

parse_datetime

parse_datetime

Parses string into a timestamp with time zone using format.

ってあるけど書き方がよく分からない。

テストコードを見るとなんとなくイメージが湧く。 https://github.com/prestodb/presto/blob/master/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsBase.java#L661-L673

%Y%m%dみたいな書き方はNGでYYYY-MM-DDという書き方をしないといけない。

select parse_datetime('2018-01-01 09:00:00', 'YYYY-MM-DD H:m:s')

第一匹数が時分秒まで指定していたら、以下のようなクエリはエラーになる。

select parse_datetime('2018-01-01 09:00:00', 'YYYY-MM-DD') -- エラー

タイムゾーン指定の方法が若干謎。

select parse_datetime('2018-01-01 09:00:00 Asia/Tokyo', 'YYYY-MM-DD H:m:s ZZZZZ')
select parse_datetime('2018-01-01 09:00:00 +0900', 'YYYY-MM-DD H:m:s Z')