此查詢回傳 0
SELECT (CURRENT_TIMESTAMP AT TIME ZONE 'PST'
- CURRENT_TIMESTAMP AT TIME ZONE 'UTC') AS td
FROM dual
我怎樣才能讓它真正顯示時間的真正差異?例如,在這種情況下,我希望看到 -8 小時的差異。
在這個例子中,我使用了 CURRENT_TIMESTAMP,但我有一個真實的用例,我有兩個不同時區的時間戳。我想要這兩者之間的實時差異。
uj5u.com熱心網友回復:
將值轉換為TIMESTAMP不帶時區的值:
SELECT CAST(CURRENT_TIMESTAMP AT TIME ZONE 'PST' AS TIMESTAMP)
- CAST(CURRENT_TIMESTAMP AT TIME ZONE 'UTC' AS TIMESTAMP)
as td
FROM DUAL;
哪些輸出:
TD -000000000 08:00:00.000000
db<>在這里擺弄
uj5u.com熱心網友回復:
因此,您想找到時區之間的時差。(這不是標題所說的;標題具有誤導性。)
如果是這樣,那么您不需要參考current_timestamp,或任何類似的東西。
由于您將 PST 與 UTC 進行比較,因此這與查找 PST 的 UTC 偏移量相同。這使問題變得更加容易。(在一般情況下,您可以找到兩個時區的偏移量并減去;在您的示例中,UTC 與自身的偏移量顯然為零)。
select to_char(to_timestamp_tz('PST', 'tzr'), 'tzh:tzm') as pst_offset
from dual;
PST_OFFSET
----------
-08:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385711.html
