In SQL Server è necessario trovare l'offset di un dato datetimeoffset(7)
.Ottenere offset di datetimeoffset in SQL Server
Ho cercato la documentazione e ci sono tutti i modi per cambiare l'offset ma non un modo per conoscere l'offset di un valore particolare (scusate se l'ho perso).
Bene, mi è venuto in mente il seguente pezzo di codice che trovo troppo complicato anche se sembra funzionare.
DECLARE @datetimeOffset datetimeoffset(7)
SET @datetimeOffset = CAST('2007-05-08 22:35:29.1234567-05:00' AS datetimeoffset(7))
DECLARE @result datetimeoffset(7)
DECLARE @offsetMin int
SET @offsetMin = DATEDIFF(mi, cast(SWITCHOFFSET(@datetimeOffset, '+00:00') as datetime), cast(@datetimeOffset as datetime))
SELECT @offsetMin
devo ancora fare la conversione al +00: formato di 00, ma ha voluto verificare se c'è un modo migliore di fare questo.
Grazie!
È anche possibile ottenere DATENAME (tz, @datetimeoffset) per ottenere l'offset come varchar. –
'TZOFFSET' funziona al posto di' tz' e, per quello che vale, è riconosciuto dall'evidenziatore di sintassi SSMS. –
Funziona solo in SSMS 2012+ – codeMonkey