Na serveru SQL Server transact-sql SYSDATETIMEOFFSET()
funkce vrací datetimeoffset(7) hodnota, která obsahuje datum a čas počítače, na kterém běží instance SQL Server. Tato hodnota zahrnuje posun časového pásma.
Příklady použití níže.
Syntaxe
Syntaxe vypadá takto:
SYSDATETIMEOFFSET ( )
Funkci tedy jednoduše zavoláte bez jakýchkoli argumentů.
Příklad
Zde je základní příklad:
SELECT SYSDATETIMEOFFSET() AS Result;
Výsledek:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
Extrahování posunu časového pásma
Můžete použít DATEPART()
funkce pro vrácení posunu časového pásma. Tato funkce vrací celé číslo, které představuje posun časového pásma v minutách.
Příklad:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';
Výsledek:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
Pomocí funkce FORMAT() můžete také vrátit posun časového pásma jako řetězec. Konkrétně můžete použít z
, zz
a/nebo zzz
argumenty, které jej vrátí v požadovaném formátu.
Příklad:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz', FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';
Výsledek:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
Převod návratové hodnoty
Můžete také použít funkce jako CONVERT()
převést návratovou hodnotu na jiný datový typ. Zde je příklad, kdy jej převedu na datum hodnotu a čas hodnota:
SELECT CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date', CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';
Výsledek:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
Jakmile to uděláme, samozřejmě ztratíme posun časového pásma.
Viz také TODATETIMEOFFSET()
což vám umožní získat datetimeoffset hodnotu z datetime2 výraz a SWITCHOFFSET()
což vám umožňuje změnit posun časového pásma.