簡體   English   中英

如何在 BigQuery 中將新創建的列轉換為不同的時間格式?

[英]How do I convert a newly created column to a different time format in BigQuery?

我是 SQL 和 BigQuery 的新手。 我參加了有關數據分析的在線課程,期末項目的一部分是分析數據集並進行演示。

數據集非常大,所以我更願意使用 SQL 而不是電子表格(我更熟悉電子表格,但我想磨練我的 SQL 技能。)。

  • 僅顯示我選擇的列的新臨時表
  • 將新創建(計算)的列從 INTERVAL 格式轉換為 TIME 格式

我運行了這個查詢:

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.

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