athenaで日付周りをいじる
Presto/Athena Examples: Date and Datetime functions
athenaで日付周りをいじる
AWS Athenaで、ISO8601形式の文字列をタイムスタンプに変換したり、UTCとJSTのタイムゾーンを変換して比較したりしたいときに使う。from_iso8601_timestampでISO8601文字列をタイムスタンプ型に変換し、AT TIME ZONEでタイムゾーンを変換した上で大小比較している。Athenaのエンジンは記事執筆後にアップデートされているため、2020年時点の挙動であることに留意する。
解決
select
from_iso8601_timestamp('2020-03-19T18:01:08+09:00'), -- 2020-03-19 18:01:08.000 +09:00
timestamp '2020-03-19 09:01:09 UTC' AT TIME ZONE 'Asia/Tokyo', -- 2020-03-19 18:01:09.000 Asia/Tokyo
from_iso8601_timestamp('2020-03-19T18:01:08+09:00') > timestamp '2020-03-19 09:01:09 UTC' AT TIME ZONE 'Asia/Tokyo', -- false
from_iso8601_timestamp('2020-03-19T18:01:08+09:00') > timestamp '2020-03-19 09:01:07 UTC' AT TIME ZONE 'Asia/Tokyo' -- true参考
Presto/Athena Examples: Date and Datetime functions
8.13. Date and Time Functions and Operators — Presto 0.235 Documentation