smalldatetime (Transact-SQL)

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

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.