[英]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.