smalldatetime (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric
Hiermee definieert u een datum die wordt gecombineerd met een tijdstip van de dag. De tijd is gebaseerd op een dag van 24 uur, met seconden altijd nul (:00
) en zonder fractionele seconden.
Notitie
Gebruik de tijd, datum, datum/tijd2en datum/tijd gegevenstypen voor nieuw werk. Deze typen zijn afgestemd op de SQL-standaard, omdat ze draagbaarder zijn. tijddatum/tijd2 en datum/tijdoffset meer seconden precisie bieden. datetimeoffset- biedt ondersteuning voor tijdzones voor wereldwijd geïmplementeerde toepassingen.
beschrijving van smalldatetime
Eigenschap | Waarde |
---|---|
syntaxis | smalldatetime- |
DECLARE @MySmallDateTime SMALLDATETIME; CREATE TABLE Table1 (Column1 SMALLDATETIME); |
|
letterlijke standaardtekenreeksindelingen (gebruikt voor client op down-level) |
Niet van toepassing |
datumbereik |
1900-01-01 via 2079-06-06 1 januari 1900, tot en met 6 juni 2079 |
tijdsbereik |
00:00:00 via 23:59:59 2024-05-09 23:59:59 afronden op 2024-05-10 00:00:00 |
elementbereiken |
yyyy is vier cijfers, variërend van 1900 tot 2079, die een jaar vertegenwoordigt.MM is twee cijfers, variërend van 01 tot 12, die een maand in het opgegeven jaar vertegenwoordigt.dd is twee cijfers, variërend van 01 tot 31, afhankelijk van de maand, die een dag van de opgegeven maand vertegenwoordigt.HH is twee cijfers, variërend van 00 tot 23, die het uur vertegenwoordigt.mm is twee cijfers, variërend van 00 tot 59, die de minuut vertegenwoordigt.ss is twee cijfers, variërend van 00 tot 59, die de tweede vertegenwoordigt. Waarden die 29,998 seconden of minder zijn, worden naar beneden afgerond op de dichtstbijzijnde minuut. Waarden van 29,999 seconden of meer worden naar boven afgerond op de dichtstbijzijnde minuut. |
tekenlengte | Maximaal 19 posities |
opslaggrootte | 4 bytes, vast |
nauwkeurigheid | Een minuut |
standaardwaarde | 1900-01-01 00:00:00 |
Agenda- | Gregoriaans (Bevat niet het volledige aantal jaren.) |
door de gebruiker gedefinieerde tweede precisie | Nee |
tijdzone-offsetbewust en behoud | Nee |
zomertijdbewuste | Nee |
ANSI- en ISO 8601-naleving
smalldatetime- voldoet niet aan ANSI of ISO 8601.
Datum- en tijdgegevens converteren
Wanneer u gegevenstypen converteert naar datum en tijd, weigert SQL Server alle waarden die niet als datums of tijden kunnen worden herkend. Zie CAST en CONVERTvoor informatie over het gebruik van de functies CAST
en CONVERT
met datum- en tijdgegevens.
Smalldatetime converteren naar andere datum- en tijdtypen
In deze sectie wordt beschreven wat er gebeurt wanneer een smalldatetime gegevenstype wordt geconverteerd naar andere datum- en tijdgegevenstypen.
Voor een conversie naar datumworden het jaar, de maand en de dag gekopieerd. De volgende code toont de resultaten van het converteren van een smalldatetime waarde naar een datum waarde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
Dit is de resultatenset.
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
Wanneer de conversie naar tijd(n), worden de uren, minuten en seconden gekopieerd. De fractionele seconden zijn ingesteld op 0
. De volgende code toont de resultaten van het converteren van een smalldatetime waarde naar een time(4) waarde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
Dit is de resultatenset.
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
Wanneer de conversie datum/tijd-is, wordt de smalldatetime--waarde gekopieerd naar de datum/tijd- waarde. De fractionele seconden zijn ingesteld op 0
. De volgende code toont de resultaten van het converteren van een smalldatetime--waarde naar een datum/tijd--waarde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
Dit is de resultatenset.
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
Voor een conversie naar datetimeoffset(n) wordt de waarde smalldatetime gekopieerd naar de datetimeoffset(n) waarde. De fractionele seconden worden ingesteld op 0
en de tijdzone-offset wordt ingesteld op +00:0
. De volgende code toont de resultaten van het converteren van een smalldatetime waarde naar een datetimeoffset(4) waarde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
Dit is de resultatenset.
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
Voor de conversie naar datum/tijd2(n)wordt de waarde smalldatetime gekopieerd naar de datum/tijd2(n) waarde. De fractionele seconden zijn ingesteld op 0
. De volgende code toont de resultaten van het converteren van een smalldatetime waarde naar een datetime2(4) waarde.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
Dit is de resultatenset.
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
Voorbeelden
Een. Letterlijke waarde van cast-tekenreeks met seconden tot smalldatetime
In het volgende voorbeeld wordt de conversie van seconden in letterlijke tekenreeksen vergeleken met 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);
Invoer | Uitvoer |
---|---|
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. Gegevenstypen voor datum en tijd vergelijken
In het volgende voorbeeld worden de resultaten van het casten van een tekenreeks vergeleken met elk gegevenstype datum en tijd.
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';
Gegevenstype | Uitvoer |
---|---|
tijd | 12:35:29.1234567 |
datum | 2024-05-08 |
smalldatetime- | 2024-05-08 12:35:00 |
datum/tijd- | 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 |