In SQL Server kunt u de TODATETIMEOFFSET()
. gebruiken functie om een datetimeoffset . te retourneren waarde die is vertaald uit een datetime2 uitdrukking. Het accepteert twee argumenten; de datum en de offset die u op die datum wilt toepassen.
Hieronder staan voorbeelden van gebruik.
Syntaxis
De syntaxis van TODATETIMEOFFSET()
gaat als volgt:
TODATETIMEOFFSET ( expression , time_zone )
Waar expression
is een uitdrukking die wordt omgezet in een datetime2 waarde, en time_zone
is de tijdzone die u op die uitdrukking (datum) wilt toepassen.
U kunt de tijdzone in minuten of uren opgeven. Als je het in minuten opgeeft, gebruik dan een geheel getal (bijv. -120
), gebruik anders om het in uren op te geven een tekenreeks (bijv. '+04.00'
). Het bereik voor de tijdzone is +14 tot -14 (uren).
De datum die u opgeeft, wordt ook geïnterpreteerd in lokale tijd voor de opgegeven tijdzone.
Voorbeeld 1
Hier is een eenvoudig gebruiksvoorbeeld:
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '+08:00' ) AS Result;
Resultaat:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 +08:00
Voorbeeld 2 – Negatieve waarde
Dit is hetzelfde als het vorige voorbeeld, behalve dat ik in plaats daarvan een negatieve waarde gebruik:
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '-08:00' ) AS Result;
Resultaat:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 -08:00
Voorbeeld 3 – Een datetime2-variabele gebruiken
In dit voorbeeld stel ik expliciet een variabele in met een datetime2 waarde, pas dan TODATETIMEOFFSET()
toe met die waarde, en vergelijk de waarden:
DECLARE @date datetime2 = '2112-01-01 00:00:00.0000000'; SELECT @date AS 'Original Date', TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';
Resultaat:
Original Date +08:00 --------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 2112-01-01 00:00:00.0000000 +08:00
Zoals we in dit voorbeeld (en de vorige) kunnen zien, heeft de oorspronkelijke datumwaarde geen datetime offset-informatie (omdat het een datetime2 . is waarde), maar zodra we het door de TODATETIMEOFFSET()
functie, eindigen we met een datetimeoffset gegevenstype.
Voorbeeld 4 – Een datetimeoffset-variabele gebruiken
Dit is vergelijkbaar met het vorige voorbeeld, behalve dat de oorspronkelijke datum is ingesteld als een datetimeoffset waarde:
DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00'; SELECT @date AS 'Original Date', TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';
Resultaat:
Original Date +08:00 ---------------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 +04:00 2112-01-01 00:00:00.0000000 +08:00
Voorbeeld 5 – De huidige datum/tijd gebruiken
In dit voorbeeld geef ik de SYSDATETIMEOFFSET()
. door functie als de datumuitdrukking. Deze functie genereert de huidige datum/tijd van de computer waarop de SQL Server-instantie wordt uitgevoerd:
SELECT SYSDATETIMEOFFSET() AS 'Current Date', TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';
Resultaat:
Current Date +08:00 ---------------------------------- ---------------------------------- 2018-06-06 08:50:57.8382284 +10:00 2018-06-06 08:50:57.8382284 +08:00
Voorbeeld 6 – De tijdzone-offset als een geheel getal opgeven
Zoals vermeld, kunt u de tijdzone-offset ook als een geheel getal opgeven in plaats van een tekenreeks:
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', -180 ) AS Result;
Resultaat:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 -03:00