Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-databas i Microsoft Fabric
Avsnitten i denna artikel täcker alla Transact-SQL datum- och tiddatatyper och funktioner.
- Datatyper av datum och tid
-
funktioner för datum och tid
- Funktioner som returnerar systemdatum- och tidsvärden
- Funktioner som returnerar datum- och tidsdelar
- Funktioner som returnerar datum- och tidsvärden från sina delar
- Funktioner som returnerar datum- och tidsdifferensvärden
- Funktioner som ändrar datum- och tidsvärden
- Funktioner som sätter eller returnerar sessionsformatfunktioner
- Funktioner som validerar datum- och tidsvärden
- Artiklar relaterade till datum och tid
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. |
Artiklar relaterade till datum och tid
| 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. |