Delen via


smalldatetime (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 0en 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