我有一組日期,如2023-11-30 23:59:59.0000000 00:00。我只想更新從 00:00到 01:00的時區偏移量。如果它使事情變得更容易,那么所有時間都是23:59:59.0000000,只有日期有所不同。
我試過這個:
UPDATE Table SET Date = DATEADD(DAY, DATEDIFF(DAY, 0, Date), '2023-11-30 23:59:59.0000000 01:00')
但它只能以最高幾秒的精度作業,沒有毫秒、納秒和 tzoffset。當我嘗試這樣做時,我遇到了這個錯誤:
從字串轉換日期和/或時間時轉換失敗。
uj5u.com熱心網友回復:
好像你想要TODATETIMEOFFSET:
DECLARE @YourValue datetimeoffset(7) = '2023-11-30 23:59:59.0000000 00:00';
SELECT TODATETIMEOFFSET(@YourValue,' 01:00');
這回傳2023-11-30 23:59:59.0000000 01:00. 這是有效的,因為它接受您的datetimeoffset值并(隱式)將其轉換為datetime2第一個,它會截斷偏移值,然后將新的偏移量添加到該值中;因此不會改變實際時間,而只會改變偏移量。
如果您是說您實際上更改了值,以便日期和時間隨偏移量而變化,那么您需要SWITCHOFFSET:
DECLARE @YourValue datetimeoffset(7) = '2023-11-30 23:59:59.0000000 00:00';
SELECT SWITCHOFFSET(@YourValue,' 01:00');
這回傳2023-12-01 00:59:59.0000000 01:00.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370519.html
標籤:sql-server 约会时间 时区
