sql >> Database >  >> RDS >> Sqlserver

SYSDATETIMEOFFSET() Voorbeelden in SQL Server (T-SQL)

In SQL Server is de transactie-sql SYSDATETIMEOFFSET() functie retourneert een datetimeoffset(7) waarde die de datum en tijd bevat van de computer waarop het exemplaar van SQL Server wordt uitgevoerd. Deze waarde omvat de tijdzoneverschuiving.

Voorbeelden van gebruik hieronder.

Syntaxis

De syntaxis gaat als volgt:

SYSDATETIMEOFFSET ( )

Dus je roept de functie gewoon aan zonder argumenten.

Voorbeeld

Hier is een eenvoudig voorbeeld:

SELECT SYSDATETIMEOFFSET() AS Result;

Resultaat:

Result
----------------------------------
2018-06-17 09:55:27.3221853 +10:00

De tijdzone-offset extraheren

U kunt de DATEPART() . gebruiken functie om de tijdzone-offset te retourneren. Deze functie retourneert een geheel getal dat de tijdzone-offset in minuten vertegenwoordigt.

Voorbeeld:

SELECT 
    SYSDATETIMEOFFSET() AS 'Date/time',
    DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';

Resultaat:

Date/time                             TZ Offset
----------------------------------    -----------
2018-06-17 10:04:23.2316409 +10:00    600

U kunt ook de functie FORMAT() gebruiken om de tijdzone-offset als een tekenreeks te retourneren. In het bijzonder kunt u de z . gebruiken , zz , en/of zzz argumenten om het in het vereiste formaat terug te geven.

Voorbeeld:

SELECT 
    SYSDATETIMEOFFSET() AS 'Date/time',
    FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz',
    FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';

Resultaat:

Date/time                             zz                zzz
----------------------------------    --------------    --------------
2018-06-17 10:27:33.7314840 +10:00    +10               +10:00

De retourwaarde converteren

U kunt ook functies gebruiken zoals CONVERT() om de geretourneerde waarde om te zetten in een ander gegevenstype. Hier is een voorbeeld waarbij ik het omzet in een datum waarde en een tijd waarde:

SELECT 
    CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date',
    CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';

Resultaat:

Date          Time
----------    ----------------
2018-06-17    10:08:29.6377947

Als we dat eenmaal doen, verliezen we natuurlijk de tijdzone-offset.

Zie ook TODATETIMEOFFSET() waarmee u een datetimeoffset . kunt krijgen waarde van een datetime2 uitdrukking, en SWITCHOFFSET() waarmee u een tijdzone-offset kunt wijzigen.


  1. Geldige indelingsreeksvervangingen voor de SQLite StRFtime()-functie

  2. SQL Server SP - Passparameter voor IN-arraylijst?

  3. Oracle 9i, Oracle 10g en Oracle 11g Developer Suite Forms and Reports Tutorial

  4. Hoe MySQL-tijd te converteren