![](/img/trans.png)
[英]How do I split a duration of time into hourly intervals in BigQuery?
[英]How do I convert a newly created column to a different time format in BigQuery?
我是 SQL 和 BigQuery 的新手。 我參加了有關數據分析的在線課程,期末項目的一部分是分析數據集並進行演示。
數據集非常大,所以我更願意使用 SQL 而不是電子表格(我更熟悉電子表格,但我想磨練我的 SQL 技能。)。
我運行了這個查詢:
SELECT started_at, ended_at, rideable_type, member_casual, ended_at-started_at AS trip_length
FROM
`my-project-2022-10-21.aggregate_divvy_tripdata.12mo_aggregate_table` LIMIT 1000
上面查詢的結果現在顯示我想要的表,其中只有我需要的列,加上新創建的 trip_length 列。 但是該列是 INTERVAL 格式,我希望它是 TIME 格式。 該計算的源列是 TIMESTAMP 格式。
我知道我可以使用 CAST 或 EXTRACT 來執行此操作,但每次我嘗試使用它的某個版本時,都會出現錯誤。
將 trip_length 轉換為 TIME 格式的正確下一步是什么? 我可以在上面的查詢中包含該計算還是必須是一個新查詢? 我也覺得我應該創建一個臨時表來為這個項目工作,但我不太確定該怎么做......
謝謝你的幫助!
我不知道你是否真的想要 TIME 格式的結果,因為如果差異超過 24 小時,你會得到一個錯誤。 例如,您可以輕松地以秒為單位獲取行程持續時間並從那里開始工作。
如果它確實是目標,我還添加了一種以時間格式獲取它的方法。
timestamp_diff(ended_at, started_at, second) as duration_in_sec,
time(
extract(hour from ended_at - started_at),
extract(minute from ended_at - started_at),
extract(second from ended_at - started_at)
) as time_format,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.