AthenaでString→Timestampや、String→Decimalなどの変換を行いたく試行錯誤したのでメモ
検証環境
Athena
やりたいこと
下表の各列を、日付型、数値型に変換したい
# | 利用日(string) | 利用量(string) |
---|---|---|
1 | 2019/04/02 | 2.83 GB |
2 | 2019/04/03 | 1.51 GB |
3 | 2019/04/04 | 1.67 GB |
実行SQLと実行結果
-- 日付文字列 → Timestamp型は date_parse -- 数値文字列 → 数値型は CAST(数値文字列 AS 数値型) SELECT date_parse(<利用日>, '%Y/%m/%d') <利用日> , CAST(substr(<利用量>, 1, (length(<利用量>) - 3)) AS decimal(5,2)) <利用量> FROM <通信量テーブル>
# | 利用日(timestamp) | 利用量(decimal(5,2)) |
---|---|---|
1 | 2019-04-02 00:00:00.000 | 2.83 |
2 | 2019-04-03 00:00:00.000 | 1.51 |
3 | 2019-04-04 00:00:00.000 | 1.67 |