sql >> Databasteknik >  >> RDS >> Sqlserver

SYSDATETIMEOFFSET() Exempel i SQL Server (T-SQL)

I SQL Server, transact-sql SYSDATETIMEOFFSET() funktion returnerar en datetimeoffset(7) värde som innehåller datum och tid för den dator där instansen av SQL Server körs. Detta värde inkluderar tidszonförskjutningen.

Exempel på användning nedan.

Syntax

Syntaxen ser ut så här:

SYSDATETIMEOFFSET ( )

Så du anropar helt enkelt funktionen utan några argument.

Exempel

Här är ett grundläggande exempel:

SELECT SYSDATETIMEOFFSET() AS Result;

Resultat:

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

Extrahera tidszonsförskjutningen

Du kan använda DATEPART() funktion för att returnera tidszonförskjutningen. Denna funktion returnerar ett heltal som representerar tidszonförskjutningen i minuter.

Exempel:

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

Resultat:

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

Du kan också använda FORMAT()-funktionen för att returnera tidszonförskjutningen som en sträng. Specifikt kan du använda z , zz och/eller zzz argument för att returnera den i det format som krävs.

Exempel:

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

Resultat:

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

Konvertera returvärdet

Du kan också använda funktioner som CONVERT() för att konvertera returvärdet till en annan datatyp. Här är ett exempel där jag konverterar det till ett datum värde och en tid värde:

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

Resultat:

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

När vi väl gör det tappar vi naturligtvis tidszonsförskjutningen.

Se även TODATETIMEOFFSET() vilket gör att du kan få en datumtidsförskjutning värde från en datetime2 uttryck och SWITCHOFFSET() som låter dig ändra en tidszonförskjutning.


  1. Bilagor i Oracle Applications R12

  2. Duplicera, kopiera eller säkerhetskopiera tabeller i MySQL, MariaDB, Oracle, PostgreSQL, DB2 och SQLite med Skapa tabell som SQL

  3. 2 sätt att få partitionsinformation för en tabell i SQL Server (T-SQL)

  4. PostgreSQL JDBC nollsträng tagen som en byte