我想在黑斑羚中減去兩個日期。我知道 impala 中有一個 datediff 函式,但是如果有兩個時間戳值如何處理它,比如考慮這種情況:
select to_date('2022-01-01 15-05-53','yyyy-mm-dd HH24-mi-ss')-to_date('2022-01-01 15-04-53','yyyy-mm-dd HH24-mi-ss') from dual;
有 1 分鐘的差異,oracle 會將結果設為0.000694444天。
我的要求是impala中是否有任何此類功能,我可以以'yyyy-mm-dd HH24-mi-ss'的方式減去兩個時間戳值,并在等效天數內獲得結果,無論天數是否存在差異,年、小時、分鐘或秒。任何差異都應反映在等效天數內。
任何其他我可以實作相同目標的方式,我也對此持開放態度。
先感謝您。
uj5u.com熱心網友回復:
您可以使用unix_timestamp(timestamp)將這兩個欄位轉換為 unixtime (int) 格式。這實際上是 1970-01-01 的秒數,非常適合以秒為單位計算日期時間差。一旦您從 1970-01-01 獲得秒數,您可以輕松地減去它們以了解差異。你的 sql 應該是這樣的 -
select
unix_timestamp(to_timestamp('2022-01-01 15-06-53','yyyy-MM-dd HH-mm-ss')) -
unix_timestamp(to_timestamp('2022-01-01 15-05-53','yyyy-MM-dd HH-mm-ss')
) diff_in_seconds
一旦你有幾秒鐘的差異,你可以很容易地將它們轉換為分鐘/小時/天——無論你想要什么格式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/443328.html
