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 Preview

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.

Note

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.

smalldatetime description

Property Value
Syntax smalldatetime
Usage DECLARE @MySmallDateTime SMALLDATETIME;

CREATE TABLE Table1 (Column1 SMALLDATETIME);
letterlijke standaardtekenreeksindelingen
(gebruikt voor client op down-level)
Not applicable
Date range 1900-01-01 via 2079-06-06

1 januari 1900, tot en met 6 juni 2079
Time range 00:00:00 via 23:59:59

2024-05-09 23:59:59 afronden op 2024-05-10 00:00:00
Element ranges 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.
Character length Maximaal 19 posities
Storage size 4 bytes, vast
Accuracy One minute
Default value 1900-01-01 00:00:00
Calendar Gregorian

(Bevat niet het volledige aantal jaren.)
door de gebruiker gedefinieerde tweede precisie No
tijdzone-offsetbewust en behoud No
zomertijdbewuste No

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 CASTvoor informatie over het gebruik van de functies CONVERT en 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

Examples

A. 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);
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. 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';
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