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 0
festgelegt. 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 0
festgelegt. 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 0
festgelegt, und der Zeitzonenoffset wird auf +00:0
festgelegt. 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 0
festgelegt. 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 |