- 7/22/2017
- 4 perc olvasás
-
- M
- j
- c
- M
- m
-
+4
.
Az alábbiakra vonatkozik: SQL Server (minden támogatott verzió) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Meghatároz egy dátumot, amelyet egy napszakkal kombinálnak. Az idő egy 24 órás napon alapul, a másodpercek mindig nulla (:00) és tört másodpercek nélkül.
Jegyzet
Az idő, a dátum, a datetime2 és a datetimeoffset adattípusokat új munkákhoz használja. Ezek a típusok megfelelnek az SQL-szabványnak. Jobban hordozhatóak. time, datetime2 és datetimeoffset több másodperces pontosságot biztosít. datetimeoffset időzóna-támogatást biztosít a globálisan telepített alkalmazások számára.
smalldatetime description
Property | Value |
---|---|
Syntax | smalldatetime |
Használat | DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
Default string literal formats (used for down-szintű ügyfél) |
Nem alkalmazható |
Dátumtartomány | 1900-01-01-től 2079-06-06-ig Január 1, 1900-tól 2079. június 6-ig |
Időintervallum | 00:00:00-tól 23:59:59-ig 2007-05-09 23:59:59-re kerekít 2007-05-10 00:00:00:00 |
Elemtartományok | ÉÉÉÉ négy számjegy, 1900-tól 2079-ig, amelyek egy évet jelölnek. MM két számjegy, 01 és 12 között, amely a megadott év egy hónapját jelöli. DD két számjegy, 01 és 31 között, a hónaptól függően, amely a megadott hónap egy napját jelöli. hh két számjegy, 00 és 23 között, amely az órát jelöli. mm két számjegy, 00 és 59 között, amely a percet jelöli. ss két számjegy, 00 és 59 között, amely a másodpercet jelöli. A 29,998 másodperces vagy annál kisebb értékeket lefelé kerekítjük a legközelebbi percre. A 29,999 másodperces vagy annál nagyobb értékeket a legközelebbi percre kerekítjük. |
Karakterhossz | maximum 19 pozíció |
Tárolási méret | 4 bájt, fix. |
Pontosság | Egy perc |
Előre beállított érték | 1900-01-01 00:00:00 |
Naptár | Gregorián (Nem tartalmazza a teljes évszámtartományt.) |
User-meghatározott tört másodperces pontosság | Nem |
Az időzóna eltolódás ismerete és megőrzése | Nem |
Daylight saving aware | No |
ANSI and ISO 8601 Compliance
smalldatetime isn’t ANSI or ISO 8601 compliant.
Dátum- és időadatok konvertálása
A dátum- és időadattípusokra történő konvertáláskor az SQL Server elutasít minden olyan értéket, amelyet nem ismer fel dátumként vagy időpontként. A CAST és CONVERT függvények dátum- és időadatokkal való használatáról a CAST és CONVERT (Transact-SQL) című témakörben talál információkat.
A smalldatetime átalakítása más dátum- és időadattípusokká
Ez a szakasz leírja, mi történik, amikor egy smalldatetime adattípust más dátum- és időadattípusokká alakítunk át.
A dátumra történő átalakításnál az év, a hónap és a nap másolásra kerül. A következő kód egy smalldatetime
érték date
értékké történő átalakításának eredményét mutatja.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @date date = @smalldatetime SELECT @smalldatetime AS '@smalldatetime', @date AS 'date'; --Result --@smalldatetime date ------------------------- ---------- --1955-12-13 12:43:00 1955-12-13 -- --(1 row(s) affected)
A time(n)-re történő átalakítás esetén az órák, percek és másodpercek másolásra kerülnek. A tört másodpercek 0-ra kerülnek. A következő kód egy smalldatetime
érték time(4)
értékké való átalakításának eredményét mutatja.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @time time(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @time AS 'time'; --Result --@smalldatetime time ------------------------- ------------- --1955-12-13 12:43:00 12:43:00.0000 -- --(1 row(s) affected)
Ha a konverzió datetime értékre történik, a smalldatetime értéket másolja a datetime értékbe. A tört másodpercek értéke 0. A következő kód egy smalldatetime
érték datetime
értékké történő átalakításának eredményét mutatja.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetime datetime = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime'; --Result --@smalldatetime datetime ------------------------- ----------------------- --1955-12-13 12:43:00 1955-12-13 12:43:00.000 -- --(1 row(s) affected)
Datetimeoffset(n)-re történő átalakítás esetén a smalldatetime értéket a datetimeoffset(n) értékbe másolja. A tört másodpercek 0-ra, az időzóna eltolás pedig +00:0-ra kerül beállításra. A következő kód egy smalldatetime
érték datetimeoffset(4)
értékké történő átalakításának eredményét mutatja.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetimeoffset datetimeoffset(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetimeoffset AS 'datetimeoffset(4)'; --Result --@smalldatetime datetimeoffset(4) ------------------------- ------------------------------ --1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0 -- --(1 row(s) affected)
A datetime2(n)-re történő átalakításnál a smalldatetime értéket a datetime2(n) értékbe másolja. A tört másodperceket 0-ra állítjuk. A következő kód egy smalldatetime
érték datetime2(4)
értékké való átalakításának eredményét mutatja.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetime2 datetime2(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetime2 AS ' datetime2(4)'; --Result --@smalldatetime datetime2(4) ------------------------- ------------------------ --1955-12-13 12:43:00 1955-12-13 12:43:00.0000 -- --(1 row(s) affected)
Példák
A. Másodperceket tartalmazó karakterlánc literálok átváltása smalldatetime
A következő példa a karakterlánc literálokban szereplő másodpercek smalldatetime
értékké történő átalakítását hasonlítja össze.
SELECT CAST('2007-05-08 12:35:29' AS smalldatetime) ,CAST('2007-05-08 12:35:30' AS smalldatetime) ,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Bemenet | Kimenet |
---|---|
2007-05-08 12:35:29 | 2007-05-08 12:35:00 |
2007-05-08 12:35:30 | 2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 | 2007-05-08 13:00:00 |
B. Dátum- és időadattípusok összehasonlítása
A következő példa összehasonlítja egy karakterláncnak az egyes dátum- és időadattípusokhoz való hozzárendelésének eredményeit.
SELECT CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time' ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date' ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS 'smalldatetime' ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime' ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS 'datetime2' ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 'datetimeoffset';
.