Anteckning
Å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
Analysplattformssystem (PDW)
SQL-databas i Förhandsversion av Microsoft Fabric
Definierar ett datum som kombineras med en tid på dagen. Tiden baseras på en 24-timmars dag, med sekunder alltid noll (:00) och utan bråksekunder.
Note
Använd tid, datum, datetime2och datetimeoffset datatyper för nytt arbete. Dessa typer överensstämmer med SQL-standarden eftersom de är mer portabla. tid, datetime2 och datetimeoffset ge mer precision i sekunder. datetimeoffset ger tidszonsstöd för globalt distribuerade program.
smalldatetime description
| Property | Value |
|---|---|
| Syntax | smalldatetime |
| Usage | DECLARE @MySmallDateTime SMALLDATETIME;CREATE TABLE Table1 (Column1 SMALLDATETIME); |
|
Standardsträngliterala format (används för klient på nednivå) |
Not applicable |
| Date range |
1900-01-01 genom 2079-06-061 januari 1900, till och med 6 juni 2079 |
| Time range |
00:00:00 genom 23:59:592024-05-09 23:59:59 avrundar till 2024-05-10 00:00:00 |
| Element ranges |
yyyy är fyra siffror, från 1900 till 2079, vilket motsvarar ett år.MM är två siffror, från 01 till 12, vilket representerar en månad under det angivna året.dd är två siffror, från 01 till 31 beroende på månad, vilket representerar en dag i den angivna månaden.HH är två siffror, från 00 till 23, vilket representerar timmen.mm är två siffror, från 00 till 59, som representerar minuten.ss är två siffror, från 00 till 59, som representerar den andra. Värden som är 29,998 sekunder eller mindre avrundas ned till närmaste minut. Värden på 29,999 sekunder eller mer avrundas upp till närmaste minut. |
| Character length | Maximalt 19 positioner |
| Storage size | 4 byte, fast |
| Accuracy | One minute |
| Default value | 1900-01-01 00:00:00 |
| Calendar | Gregorian (Inkluderar inte hela intervallet med år.) |
| Användardefinierad bråkdels sekundprecision | No |
| Tidszonsförskjutningsmedveten och bevarande | No |
| sommartidsmedveten | No |
ANSI- och ISO 8601-efterlevnad
smalldatetime inte är ANSI- eller ISO 8601-kompatibel.
Konvertera datum- och tidsdata
När du konverterar till datum- och tidsdatatyper avvisar SQL Server alla värden som inte kan identifieras som datum eller tider. Information om hur du använder funktionerna CAST och CONVERT med datum- och tidsdata finns i CAST- och CONVERT-.
Konvertera smalldatetime till andra datum- och tidstyper
I det här avsnittet beskrivs vad som händer när en smalldatetime- datatyp konverteras till andra typer av datum- och tidsdata.
För en konvertering till datumkopieras året, månaden och dagen. Följande kod visar resultatet av konvertering av ett smalldatetime- värde till ett datum värde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
Här är resultatuppsättningen.
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
När konverteringen ska tid(n)kopieras timmar, minuter och sekunder. Bråksekunderna är inställda på 0. Följande kod visar resultatet av konvertering av ett smalldatetime- värde till ett tid(4) värde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
Här är resultatuppsättningen.
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
När konverteringen ska datetimekopieras värdet smalldatetime till värdet datetime. Bråksekunderna är inställda på 0. Följande kod visar resultatet av konvertering av ett smalldatetime--värde till ett datetime- värde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
Här är resultatuppsättningen.
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
För en konvertering till datetimeoffset(n)kopieras värdet smalldatetime till datetimeoffset(n) värde. Bråksekunderna är inställda på 0och tidszonsförskjutningen är inställd på +00:0. Följande kod visar resultatet av konvertering av ett smalldatetime- värde till ett datetimeoffset(4) värde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
Här är resultatuppsättningen.
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
För konverteringen till datetime2(n)kopieras värdet smalldatetime till värdet datetime2(n). Bråksekunderna är inställda på 0. Följande kod visar resultatet av konvertering av ett smalldatetime- värde till ett datetime2(4) värde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
Här är resultatuppsättningen.
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
Examples
A. Gjuta strängliteraler med sekunder till smalldatetime
I följande exempel jämförs konverteringen av sekunder i strängliteraler med smalldatetime-.
SELECT CAST ('2024-05-08 12:35:29' AS SMALLDATETIME),
CAST ('2024-05-08 12:35:30' AS SMALLDATETIME),
CAST ('2024-05-08 12:59:59.998' AS SMALLDATETIME);
| Input | Output |
|---|---|
2024-05-08 12:35:29 |
2024-05-08 12:35:00 |
2024-05-08 12:35:30 |
2024-05-08 12:36:00 |
2024-05-08 12:59:59.998 |
2024-05-08 13:00:00 |
B. Jämföra datatyper för datum och tid
I följande exempel jämförs resultatet av gjutning av en sträng med varje datum- och tidsdatatyp.
SELECT CAST ('2024-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
CAST ('2024-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST ('2024-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
| Data type | Output |
|---|---|
| time | 12:35:29.1234567 |
| date | 2024-05-08 |
| smalldatetime | 2024-05-08 12:35:00 |
| datetime | 2024-05-08 12:35:29.123 |
| datetime2 | 2024-05-08 12:35:29.1234567 |
| datetimeoffset | 2024-05-08 12:35:29.1234567 +12:15 |