簡體   English   中英

將 Athena 時間戳轉換為日期

[英]converting Athena timestamp to date

我正在對 Athena 進行查詢,但它中斷了。 具體來說,我收到以下片段的錯誤:

  avg(
    DATE_DIFF(
      'minute',
      CAST(from_iso8601_timestamp("sessions_staging".session_start_at) AS TIMESTAMP),
      CASE
        WHEN CAST("sessions_staging__end_raw" AS TIMESTAMP) + INTERVAL '1' MINUTE > CAST("sessions_staging".next_session_start_at AS TIMESTAMP) THEN CAST("sessions_staging".next_session_start_at AS TIMESTAMP)
        ELSE CAST("sessions_staging__end_raw" AS TIMESTAMP) + INTERVAL '30' MINUTE
      END
    )
  ) "sessions_staging__average_duration_minutes"

雅典娜抱怨Value cannot be cast to timestamp: 2022-08-03T00:05:54.300Z

我嘗試了很多技巧,例如將日期轉換為字符串,然后再次轉換為時間或時間戳類型。 由同一問題引起的類似問題在 Athena 上轉換為帶時區失敗的時間戳時涵蓋了一些問題

價值似乎還不錯。 我能夠執行: SELECT CAST(From_iso8601_timestamp('2022-08-03T00:05:54.300Z') AS timestamp) 如果我不使用CAST()並且只使用: "sessions_staging".session_start_at(varchar(6), varchar, timestamp) for function date_diff所以我知道session_start_at被視為 VARCHAR。 但是,對於被描述為解決我的問題的鑄造類型,在鏈接的討論中,似乎需要使用SELECT 我嘗試過的所有操作(包括字符串操作)都不起作用。

我如何為 Athena 重新編寫查詢/強制轉換以處理我的請求?

我最終得到:

CAST(DATE_PARSE(my_varchar_date, '%Y-%m-%dT%H:%i:%s.%f%z') AS TIMESTAMP)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM