Datatyper och funktioner för datum och tid (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-databas i Microsoft Fabric

Avsnitten i denna artikel täcker alla Transact-SQL datum- och tiddatatyper och funktioner.

Datatyper för datum och tid

De Transact-SQL datum- och tiddatatyperna listas i följande tabell:

Datatyp Format Räckvidd Noggrannhet Lagringsstorlek (bytes) Användardefinierad bråkdels sekundprecision Tidszonsförskjutning
time HH:mm:ss[.nnnnnnn] 00:00:00.0000000 till 23:59:59.999999999 100 nanosekunder 3 till 5 Yes Nej
date yyyy-MM-dd 0001-01-01 till 9999-12-31 1 dag 3 Nej Nej
smalldatetime åååå-MM-dd HH:mm:ss 1900-01-01 till 2079-06-06 1 minut 4 Nej Nej
datetime yyyy-MM-dd HH:mm:ss[.nnn] 1753-01-01 till 9999-12-31 0,00333 sekund 8 Nej Nej
datetime2 åååå-MM-dd HH:mm:ss[.nnnnnnn] 0001-01-01 00:00:00.0000000 till 9999-12-31 23:59:59.99999999 100 nanosekunder 6 till 8 Yes Nej
datetimeoffset yyyy-MM-dd HH:mm:ss[.nnnnnnn] [+|-]HH:mm 0001-01-01 00:00:00.0000000 till 9999-12-31 23:59:59.99999999 (i UTC) 100 nanosekunder 8 till 10 Yes Yes

Anmärkning

Datatypen Transact-SQL radversion är inte en datum- eller tiddatatyp. tidsstämpel är en föråldrad synonym för rowversion.

Datum- och tidsfunktioner

Följande tabeller listar de Transact-SQL datum- och tidsfunktionerna. Mer information om determinism finns i Deterministiska och nondeterministiska funktioner.

Funktioner som returnerar systemdatum- och tidsvärden

Transact-SQL härleder alla systemdatum- och tidvärden från operativsystemet för datorn där SQL Server-instansen körs.

Systemfunktioner med högre precision och datum

Sedan SQL Server 2008 (10.0.x) härleder databasmotorn datum- och tidsvärden genom användning av GetSystemTimeAsFileTime() Windows API. Noggrannheten beror på vilken datorhårdvara och version av Windows som SQL Server-instansen körs på. Detta API har en precision på 100 nanosekunder. Använd GetSystemTimeAdjustment() Windows API för att avgöra noggrannheten.

Funktion Syntax Returvärde Returnera datatyp Determinism
SYSDATETIME SYSDATETIME ( ) Returnerar ett datetime2(7)- värde som innehåller datum och tid för datorn där SQL Server-instansen körs. Det returnerade värdet inkluderar inte tidszonsförskjutningen. datetime2(7) Nondeterministisk
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Returnerar ett datetimeoffset(7)- värde som innehåller datum och tid för datorn där instansen av SQL Server körs. Det returnerade värdet inkluderar tidszonsförskjutningen. datetimeoffset(7) Nondeterministisk
SYSUTCDATETIME SYSUTCDATETIME ( ) Returnerar ett datetime2(7)- värde som innehåller datum och tid för den dator där SQL Server-instansen körs. Funktionen returnerar datum- och tidsvärden som UTC-tid (Coordinated Universal Time). datetime2(7) Nondeterministisk

Systemfunktioner med lägre precision och datum

Funktion Syntax Returvärde Returnera datatyp Determinism
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Returnerar ett datum-tidsvärde som innehåller datum och tid för datorn där SQL Server-instansen körs. Det returnerade värdet inkluderar inte tidszonsförskjutningen. datetime Nondeterministisk
GETDATE GETDATE ( ) Returnerar ett datum-tidsvärde som innehåller datum och tid för datorn där SQL Server-instansen körs. Det returnerade värdet inkluderar inte tidszonsförskjutningen. datetime Nondeterministisk
GETUTCDATE GETUTCDATE ( ) Returnerar ett datum-tidsvärde som innehåller datum och tid för datorn där SQL Server-instansen körs. Funktionen returnerar datum- och tidsvärden som UTC-tid (Coordinated Universal Time). datetime Nondeterministisk
CURRENT_DATE CURRENT_DATE Returnerar ett datumvärde som endast innehåller datumet för datorn där instansen av databasmotorn körs. Det returnerade värdet inkluderar inte tids- och tidszonsförskjutningen. date Nondeterministisk

Funktioner som returnerar datum- och tidsdelar

Funktion Syntax Returvärde Returnera datatyp Determinism
DATE_BUCKET DATE_BUCKET ( datumdel,nummer, datum, ursprung ) Returnerar ett värde som motsvarar starten av varje datum-tidshink från tidsstämpeln definierad av ursprungsparametern , eller standardvärdet för 1900-01-01 00:00:00.000 om ursprungsparametern inte är specificerad. Returtypen beror på det argument som angetts för datum. Nondeterministisk
DATUMNAMN DATENAME ( datepart, date ) Returnerar en teckensträng som representerar den angivna datumdelen av det angivna datumet. nvarchar Nondeterministisk
DATEPART DATEPART ( datepart, date ) Returnerar ett heltal som representerar den angivna datumdelen av det angivna datumet. int Nondeterministisk
DATETRUNC DATETRUNC ( datepart, date ) Returnerar ett indatadatum trunkerat till en specificerad datepart. Returtypen beror på det argument som angetts för datum. Nondeterministisk
DAG DAG ( datum ) Returnerar ett heltal som representerar dagens del av det angivna datumet. int Deterministisk
MÅNAD MÅNAD ( datum ) Returnerar ett heltal som representerar månadsdelen av ett angivet datum. int Deterministisk
ÅR ÅR ( datum ) Returnerar ett heltal som representerar årsdelen av ett angivet datum. int Deterministisk

Funktioner som returnerar datum- och tidsvärden från sina delar

Funktion Syntax Returvärde Returnera datatyp Determinism
DATEFROMPARTS DATEFROMPARTS ( år, månad, dag ) Returnerar ett datumvärde för det angivna året, månaden och dagen. date Deterministisk
DATETIME2FROMPARTS DATETIME2FROMPARTS (år, månad, dag, timme, minut, sekunder, bråk, precision) Returnerar ett datetime2-värde för det angivna datumet och tiden, med angiven precision. DateTime2(precision) Deterministisk
DATETIMEFROMPARTS DATETIMEFROMPARTS (år, månad, dag, timme, minut, sekunder, millisekunder) Returnerar ett datum-tidsvärde för det angivna datumet och tiden. datetime Deterministisk
DATUMTIDAVAVAVAVAVFARTFRÅNDELAR DATUMTIDAVSTÄLLAVAVAVAVANDELAR (år, månad, dag, timme, minut, sekunder, bråk, hour_offset, minute_offset, precision) Returnerar ett datumtidsavvikningsvärde för det angivna datumet och tiden, med angivna förskjutningar och precision. Datumtidsavvikning (precision) Deterministisk
SMALLDATETIMEFROMPARTS SMÅDATUMTIDFRÅNDELAR ( år, månad, dag, timme, minut ) Returnerar ett litet datumtidsvärde för det angivna datumet och tiden. smalldatetime Deterministisk
TIDFRÅNDELAR TIMEFROMPARTS ( timme, minut, sekunder, bråk, precision ) Returnerar ett tidsvärde för den angivna tiden, med angiven precision. tid (precision) Deterministisk

Funktioner som returnerar datum- och tidsdifferensvärden

Funktion Syntax Returvärde Returnera datatyp Determinism
DATEIFF DATEDIFF ( datum,startdatum, slutdatum ) Returnerar antalet datum- eller tid-datumdelsgränser , korsade mellan två angivna datum. int Deterministisk
DATEDIFF_BIG DATEDIFF_BIG ( datumdel,startdatum, slutdatum ) Returnerar antalet datum- eller tid-datumdelsgränser , korsade mellan två angivna datum. bigint Deterministisk

Funktioner som ändrar datum- och tidsvärden

Funktion Syntax Returvärde Returnera datatyp Determinism
DATEADD DATEADD (datepart, nummer, datum ) Returnerar ett nytt datum-tid-värde genom att lägga till ett intervall till den angivna datumdelen av det angivna datumet. Datatypen för dateargumentet Deterministisk
EOMONTH EOMONTH ( start_date [ , month_to_add ] ) Returnerar den sista dagen i månaden som innehåller det angivna datumet, med en valfri offset. Returtyp är typen av det start_date argumentet, eller alternativt datumdatatypen . Deterministisk
SWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET,time_zone ) SWITCHOFFSET ändrar tidszonsförskjutningen för ett DATETIMEOFFSET-värde och bevarar UTC-värdet. datetimeoffset med den bråkdelade precisionen av DATETIMEOFFSET Deterministisk
TODATETIMEOFFSET TODATETIMEOFFSET (uttryck, time_zone ) TODATETIMEOFFSET omvandlar ett datetime2-värde till ett datetimeoffset-värde. TODATETIMEOFFSET tolkar datetime2-värdet i lokal tid, för den angivna time_zone. datetimeoffset med den bråkdelade precisionen i datetime-argumentet Deterministisk

Funktioner som sätter eller returnerar sessionsformatfunktioner

Funktion Syntax Returvärde Returnera datatyp Determinism
@@DATEFIRST @@DATEFIRST Returnerar det aktuella värdet för sessionen av SET DATEFIRST. tinyint Nondeterministisk
BESTÄMT DATUM FÖRST SET DATEFIRST { number | @number_var } Anger den första dagen i veckan till ett tal från 1 till 7. Ej tillämpligt Ej tillämpligt
BESTÄMT DATUMFORMAT SET DATEFORMAT { format | @format_var } Sätter ordningen på datumdelarna (månad/dag/år) för att mata in datumtid- eller smådatumtidsdata . Ej tillämpligt Ej tillämpligt
@@LANGUAGE @@LANGUAGE Återlämnar namnet på det språk som används nu. @@LANGUAGE är inte en datum- eller tidsfunktion. Dock kan språkinställningen påverka utdata från datumfunktioner. Ej tillämpligt Ej tillämpligt
SETSPRÅK SET LANGUAGE { [ N ] 'language' | @language_var } Sätter språkmiljön för sessions- och systemmeddelandena. SET-SPRÅK är inte en datum- eller tidsfunktion. Dock påverkar språkinställningen utdata från datumfunktionerna. Ej tillämpligt Ej tillämpligt
sp_helplanguage sp_helplanguage [ [ @language = ] 'språk' ] Returnerar information om datumformat för alla stödda språk. sp_helplanguage är inte en datum eller tid lagrad procedur. Dock påverkar språkinställningen utdata från datumfunktionerna. Ej tillämpligt Ej tillämpligt

Funktioner som validerar datum- och tidsvärden

Funktion Syntax Returvärde Returnera datatyp Determinism
ISDATE ISDATUM (uttryck) Avgör om ett datetime- eller smalldatetime-inmatningsuttryck har ett giltigt datum- eller tidsvärde. int ISDATE används deterministiskt endast med funktionen CONVERT, när stilparametern CONVERT är specificerad och när stilen inte är lika med 0, 100, 9 eller 109.
Article Description
FORMAT Returnerar ett värde formaterat med det angivna formatet och valfri kultur. Använd FORMAT-funktionen för lokalmedveten formatering av datum/tid och talvärden som strängar.
CAST OCH KONVERTERA Tillhandahåller information om konvertering av datum- och tidsvärden till och från strängliteraler samt andra datum- och tidsformat.
Skriv internationella Transact-SQL-uttalanden Ger riktlinjer för portabilitet av databaser och databasapplikationer som använder Transact-SQL satser från ett språk till ett annat, eller som stöder flera språk.
ODBC-skalära funktioner Tillhandahåller information om ODBC:s skalära funktioner tillgängliga för användning i Transact-SQL satser. Inkluderar ODBC:s datum- och tidfunktioner.
PÅ TIDSZON Erbjuder tidszonsomvandling.