管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

Athenaでカラムの型を変換したい

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