smalldatetime (Transact-SQL)
platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPlatform Platform System (PDW)databáze SQL v Microsoft Fabric
Definuje datum, které se kombinuje s časem dne. Čas je založen na 24hodinovém dni, přičemž sekundy vždy nula (:00
) a bez desetinných sekund.
Poznámka
Pro novou práci použijtečas
smalldatetime description
Vlastnost | Hodnota |
---|---|
syntaxe |
smalldatetime |
využití | DECLARE @MySmallDateTime SMALLDATETIME; CREATE TABLE Table1 (Column1 SMALLDATETIME); |
výchozí formáty řetězcového literálu (používá se pro klienta nižší úrovně) |
Nejde použít |
rozsahu dat |
1900-01-01 prostřednictvím 2079-06-06 1. ledna 1900 až 6. června 2079 |
časový rozsah |
00:00:00 prostřednictvím 23:59:59 2024-05-09 23:59:59 zaokrouhlí na 2024-05-10 00:00:00 |
rozsahy elementů |
yyyy je čtyři číslice v rozsahu od 1900 do roku 2079, což představuje rok.MM je dvě číslice v rozsahu od 01 do 12, což představuje měsíc v zadaném roce.dd jsou dvě číslice v rozsahu od 01 do 31 v závislosti na měsíci, který představuje den zadaného měsíce.HH je dvě číslice v rozsahu od 00 do 23, což představuje hodinu.mm je dvě číslice v rozsahu od 00 do 59, která představuje minutu.ss jsou dvě číslice v rozsahu od 00 do 59, které představují sekundu. Hodnoty, které jsou 29,998 sekund nebo méně, se zaokrouhlují dolů na nejbližší minutu. Hodnoty 29,999 sekund nebo více se zaokrouhlí nahoru na nejbližší minutu. |
délka znaku | Maximálně 19 pozic |
velikost úložiště | 4 bajty, pevné |
přesnost | Minuta |
Výchozí hodnota | 1900-01-01 00:00:00 |
kalendář | Gregoriánský (Nezahrnuje úplný rozsah let.) |
přesnost desetinné sekundy definované uživatelem | Ne |
posun časového pásma s vědomím a zachováním | Ne |
s podporou letního času | Ne |
DODRŽOVÁNÍ PŘEDPISŮ ANSI a ISO 8601
smalldatetime není kompatibilní se standardem ANSI ani ISO 8601.
Převod dat data a času
Při převodu na datové typy data a času SQL Server odmítne všechny hodnoty, které nedokáže rozpoznat jako kalendářní data nebo časy. Informace o použití funkcí CAST
a CONVERT
s daty data a času naleznete v tématu CAST a CONVERT.
Převod smalldatetime na jiné typy data a času
Tato část popisuje, co se stane, když se datový typ smalldatetime převede na jiné datové typy data a času.
Pro převod na datumse zkopíruje rok, měsíc a den. Následující kód ukazuje výsledky převodu hodnoty smalldatetime na hodnotu data.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
Tady je sada výsledků.
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
Při převodu na čas(n), hodiny, minuty a sekundy se zkopírují. Zlomkové sekundy jsou nastaveny na 0
. Následující kód ukazuje výsledky převodu hodnoty smalldatetime na hodnotu time(4).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
Tady je sada výsledků.
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
Při převodu na data a času se hodnota smalldatetime zkopíruje do hodnoty datetime. Zlomkové sekundy jsou nastaveny na 0
. Následující kód ukazuje výsledky převodu hodnoty smalldatetime na hodnotu datetime.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
Tady je sada výsledků.
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
Pro převod na datetimeoffset(n), smalldatetime hodnota se zkopíruje do datetimeoffset(n) hodnotu. Zlomkové sekundy jsou nastaveny na 0
a posun časového pásma je nastaven na +00:0
. Následující kód ukazuje výsledky převodu hodnoty smalldatetime na hodnotu datetimeoffset(4).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
Tady je sada výsledků.
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
Pro převod na datetime2(n)se hodnota smalldatetime zkopíruje do hodnoty datetime2(n). Zlomkové sekundy jsou nastaveny na 0
. Následující kód ukazuje výsledky převodu hodnoty smalldatetime na hodnotu datetime2(4).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
Tady je sada výsledků.
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
Příklady
A. Přetypování řetězcových literálů s sekundami na smalldatetime
Následující příklad porovnává převod sekund v řetězcových literálech na 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);
Vstup | Výstup |
---|---|
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. Porovnání datových typů data a času
Následující příklad porovnává výsledky přetypování řetězce k jednotlivým datovým typům data a času.
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';
Datový typ | Výstup |
---|---|
čas | 12:35:29.1234567 |
datum | 2024-05-08 |
smalldatetime | 2024-05-08 12:35:00 |
data a času | 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 |
Související obsah
-
CAST a CONVERT (Transact-SQL)