W SQL Server transact-sql SYSDATETIMEOFFSET()
funkcja zwraca datetimeoffset(7) wartość, która zawiera datę i godzinę komputera, na którym działa wystąpienie programu SQL Server. Ta wartość obejmuje przesunięcie strefy czasowej.
Przykłady użycia poniżej.
Składnia
Składnia wygląda tak:
SYSDATETIMEOFFSET ( )
Więc po prostu wywołujesz funkcję bez żadnych argumentów.
Przykład
Oto podstawowy przykład:
SELECT SYSDATETIMEOFFSET() AS Result;
Wynik:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
Wyodrębnianie przesunięcia strefy czasowej
Możesz użyć DATEPART()
funkcja, aby zwrócić przesunięcie strefy czasowej. Ta funkcja zwraca liczbę całkowitą, która reprezentuje przesunięcie strefy czasowej w minutach.
Przykład:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';
Wynik:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
Możesz również użyć funkcji FORMAT(), aby zwrócić przesunięcie strefy czasowej jako ciąg. W szczególności możesz użyć z
, zz
i/lub zzz
argumenty, aby zwrócić go w wymaganym formacie.
Przykład:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz', FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';
Wynik:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
Konwersja wartości zwracanej
Możesz także użyć funkcji takich jak CONVERT()
aby przekonwertować zwracaną wartość na inny typ danych. Oto przykład, w którym przekonwertowałem go na datę wartość i czas wartość:
SELECT CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date', CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';
Wynik:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
Oczywiście, gdy to zrobimy, tracimy przesunięcie strefy czasowej.
Zobacz także TODATETIMEOFFSET()
co pozwala uzyskać przesunięcie daty i godziny wartość z datetime2 wyrażenie i SWITCHOFFSET()
co pozwala na zmianę przesunięcia strefy czasowej.