Freigeben über


smalldatetime (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Datenbank in Microsoft Fabric

Definiert ein Datum, das mit einer Uhrzeit kombiniert wird. Die Zeit basiert auf einem 24-Stunden-Tag, wobei Sekunden immer null (:00) und ohne Bruch sekunden.

Hinweis

Verwenden Sie die Uhrzeit, Datum, datetime2und datetimeoffset Datentypen für neue Arbeiten. Diese Typen richten sich an den SQL-Standard, da sie portierbarer sind. Durch time, datetime2 and datetimeoffset wird eine höhere Genauigkeit in Sekunden unterstützt. datetimeoffset unterstützt Zeitzonen für global bereitgestellte Anwendungen.

Beschreibung von „smalldatetime“

Eigenschaft Wert
Syntax smalldatetime
Verwendung DECLARE @MySmallDateTime SMALLDATETIME;

CREATE TABLE Table1 (Column1 SMALLDATETIME);
Standardmäßige Zeichenfolgenliteralformate
(wird zum Zweck der Clientkompatibilität verwendet)
Nicht verfügbar
Datumsbereich 1900-01-01 bis 2079-06-06

Zwischen dem 1. Januar 1900 und dem 6. Juni 2079
Zeitraum 00:00:00 bis 23:59:59

2024-05-09 23:59:59 rundet auf 2024-05-10 00:00:00
Elementbereiche yyyy sind vier Ziffern, von 1900 bis 2079, die ein Jahr darstellt.

MM ist zwei Ziffern, von 01 bis 12, die einen Monat im angegebenen Jahr darstellt.

dd ist zwei Ziffern, von 01 bis 31 abhängig vom Monat, der einen Tag des angegebenen Monats darstellt.

HH ist zwei Ziffern, von 00 bis 23, die die Stunde darstellt.

mm sind zwei Ziffern zwischen 00 und 59, die die Minute darstellen.

ss ist zwei Ziffern zwischen 00 und 59, die die zweite darstellt. Werte, die kleiner oder gleich 29.998 Sekunden sind, werden auf die nächste Minute abgerundet. Werte, die gleich oder größer 29.999 Sekunden sind, werden auf die nächste Minute aufgerundet.
Zeichenlänge Maximal 19 Positionen
Speichergröße 4 Bytes, behoben
Genauigkeits- Eine Minute
Standardwert 1900-01-01 00:00:00
Kalender- Gregorianisch

(schließt nicht den vollständigen Bereich von Jahren ein)
benutzerdefinierten Sekundenpräzision Nein
Zeitzonenoffset und Erhaltungs- Nein
sommersparende Nein

ANSI- und ISO 8601-Compliance

smalldatetime ist nicht konform mit ANSI oder ISO 8601.

Konvertieren von Datums- und Uhrzeitdaten

Beim Konvertieren in Datums- und Zeitdatentypen lehnt SQL Server alle Werte ab, die nicht als Datum oder Uhrzeit erkannt werden. Informationen zur Verwendung der funktionen CAST und CONVERT mit Datums- und Uhrzeitdaten finden Sie unter CAST und CONVERT.

Konvertieren von Smalldatetime in andere Datums- und Uhrzeittypen

Der folgende Abschnitt veranschaulicht die Abläufe bei der Konvertierung des smalldatetime-Datentyps in andere Datums- und Uhrzeitdatentypen.

Beim Konvertieren in date werden das Jahr, der Monat und der Tag kopiert. Der folgende Code zeigt die Ergebnisse der Konvertierung eines smalldatetime-Werts in einen Datums- Wert.

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @date AS DATE = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @date AS 'date';

Hier sehen Sie das Resultset.

@smalldatetime        date
--------------------- ----------
1955-12-13 12:43:00   1955-12-13

Wenn die Konvertierung auf Zeit(n), die Stunden, Minuten und Sekunden kopiert wird. Die Bruch sekunden werden auf 0festgelegt. Der folgende Code zeigt die Ergebnisse der Konvertierung eines smalldatetime-Werts in einen time(4)- Wert.

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @time AS TIME (4) = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @time AS 'time';

Hier sehen Sie das Resultset.

@smalldatetime          time
----------------------- -------------
1955-12-13 12:43:00     12:43:00.0000

Beim Konvertieren in datetime wird der smalldatetime-Wert in den datetime-Wert kopiert. Die Bruch sekunden werden auf 0festgelegt. Der folgende Code zeigt die Ergebnisse der Konvertierung eines smalldatetime--Werts in einen datetime--Wert.

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @datetime AS DATETIME = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @datetime AS 'datetime';

Hier sehen Sie das Resultset.

@smalldatetime          datetime
----------------------- -----------------------
1955-12-13 12:43:00     1955-12-13 12:43:00.000

Bei einer Konvertierung in datetimeoffset(n) wird der wert smalldatetime in den datetimeoffset(n) Wert kopiert. Die Bruch sekunden werden auf 0festgelegt, und der Zeitzonenoffset wird auf +00:0festgelegt. Der folgende Code zeigt die Ergebnisse der Konvertierung eines smalldatetime-Werts in einen datetimeoffset(4)- Wert.

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @datetimeoffset AS 'datetimeoffset(4)';

Hier sehen Sie das Resultset.

@smalldatetime        datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00   1955-12-13 12:43:00.0000 +00:0

Beim Konvertieren in datetime2(n) wird der smalldatetime-Wert in den datetime2(n) -Wert kopiert. Die Bruch sekunden werden auf 0festgelegt. Der folgende Code zeigt die Ergebnisse der Konvertierung eines smalldatetime-Werts in einen datetime2(4)- Wert.

DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';

DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;

SELECT @smalldatetime AS '@smalldatetime',
       @datetime2 AS ' datetime2(4)';

Hier sehen Sie das Resultset.

@smalldatetime        datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00   1955-12-13 12:43:00.0000

Beispiele

A. Umwandeln von Zeichenfolgenliteralen mit Sekunden in "smalldatetime"

Im folgenden Beispiel wird die Konvertierung von Sekunden in Zeichenfolgenliteralen mit smalldatetimeverglichen.

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);
Eingabe 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. Vergleichen von Datentypen für Datum und Uhrzeit

Im folgenden Beispiel werden die Ergebnisse der Umwandlung von einer Zeichenfolge in alle date- und time-Datentypen verglichen.

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';
Datentyp 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