お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
サービス::AWS

Athenaクエリ周りのメモ。

Athena前提知識

Amazon Athena とはによると、次のようにあるが、癖があることは覚えていた方が良い。

Amazon Athena は、標準的な SQL を使用して Amazon Simple Storage Service (Amazon S3) 内のデータを直接分析することを容易にするインタラクティブなクエリサービスです。

関数についてはAmazon Athena の関数を見るとよいのだが、Prestoのサイトを見たほうが多分早い。

UTCのISO日付書式文字列をJSTロケールのtimestampに変換する

SELECT
  date_parse('2020-01-05T23:21:00.53Z', '%Y-%m-%dT%H:%i:%s.%fZ') AT TIME ZONE 'Asia/Tokyo' AS jst

timestampをdate型に変換する

SELECT
    CAST(TBL.TSTMP AS date)
FROM (
    SELECT timestamp '2020-11-20 01:00:00' AS TSTMP
) TBL

TO_DATEはtimestampを受け付けないので役に立たない。TO_CHARはドキュメント上扱えるように見えるがフォーマット文字でエラーになる。

以下の様にしてもサポート外の数値型が渡る様で上手くいかない

TO_CHAR(year(TBL.TSTMP)) || '-' || TO_CHAR(month(TBL.TSTMP)) || '-' || TO_CHAR(day_of_month(TBL.TSTMP))

date型をWHEREで比較

date YYYY-MM-DDとして、型を明示しないと上手くいかない

SELECT
  *
FROM
  TBL
WHERE
  TBL.createAt = date '2023-11-22'