smalldatetime (Transact-SQL)SQL)

  • 07/22/2017
  • 4 minute de citit
    • M
    • j
  • .

  • c
  • M
  • m
  • +4

Se aplică la: SQL Server (toate versiunile acceptate) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse

Define o dată care este combinată cu o oră a zilei. Ora se bazează pe o zi de 24 de ore, cu secundele întotdeauna zero (:00) și fără fracțiuni de secundă.

Nota

Utilizați tipurile de date time, date, datetime2 și datetimeoffset pentru lucrări noi. Aceste tipuri se aliniază la standardul SQL. Ele sunt mai portabile. time, datetime2 și datetimeoffset oferă mai multe secunde de precizie. datetimeoffset oferă suport pentru fusul orar pentru aplicațiile implementate la nivel global.

smalldatetime description

.

Property Value
Syntax smalldatetime
Utilizare DECLARE @MySmalldatetime smalldatetime
CREATE TABLE Table1 ( Column1 smalldatetime )
Formatul literal de șiruri de caractere implicit
(utilizat pentru down-.level client)
Nu se aplică
Date range 1900-01-01 până la 2079-06-06
January 1, 1900 până la 6 iunie 2079
Intervalul de timp 00:00:00 până la 23:59:59
2007-05-09 23:59:59 se va rotunji la
2007-05-10 00:00:00
Elementul intervale YYYY este format din patru cifre, de la 1900, până la 2079, care reprezintă un an.
MM este format din două cifre, cuprinse între 01 și 12, care reprezintă o lună din anul specificat.
DD este format din două cifre, cuprinse între 01 și 31, în funcție de lună, care reprezintă o zi a lunii specificate.
hh este format din două cifre, cuprinse între 00 și 23, care reprezintă ora.
mm este format din două cifre, cuprinse între 00 și 59, care reprezintă minutul.
ss este format din două cifre, cuprinse între 00 și 59, care reprezintă secunda. Valorile care sunt mai mici sau egale cu 29,998 secunde sunt rotunjite în jos la cel mai apropiat minut. Valorile care sunt de 29,999 secunde sau mai mult sunt rotunjite în sus până la cel mai apropiat minut.
Lungimea caracterelor 19 poziții maxim
Dimensiunea de stocare 4 octeți, fixă.
Precizie Un minut
Valoare implicită 1900-01-01 00:00:00
Calendar Gregorian
(Nu include intervalul complet de ani.)
User-precizie fracționară de secundă definită de utilizator Nu
Cunoașterea și păstrarea decalajului de fus orar Nu
Conștient de ora de vară Nu

Conformitate ANSI și ISO 8601

smalldatetime nu este conform ANSI sau ISO 8601.

Conversia datelor de dată și oră

Când convertiți în tipuri de date de dată și oră, SQL Server respinge toate valorile pe care nu le poate recunoaște ca date sau ore. Pentru informații despre utilizarea funcțiilor CAST și CONVERT cu date de dată și oră, consultați CAST și CONVERT (Transact-SQL).

Conversia smalldatetime în alte tipuri de date și ore

Această secțiune descrie ce se întâmplă atunci când un tip de date smalldatetime este convertit în alte tipuri de date de dată și oră.

Pentru o conversie în dată, anul, luna și ziua sunt copiate. Următorul cod prezintă rezultatele conversiei unei valori smalldatetime într-o valoare date.

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) 

Când conversia este în timp(n), se copiază orele, minutele și secundele. Secundele fracționare sunt setate la 0. Următorul cod arată rezultatele conversiei unei valori smalldatetime într-o valoare time(4).

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) 

Când conversia este în datetime, valoarea smalldatetime este copiată în valoarea datetime. Secundele fracționare sunt setate la 0. Următorul cod arată rezultatele conversiei unei valori smalldatetime într-o valoare datetime.

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) 

Pentru o conversie în datetimeoffset(n), valoarea smalldatetime este copiată în valoarea datetimeoffset(n). Secundele fracționare sunt setate la 0, iar decalajul fusului orar este setat la +00:0. Următorul cod prezintă rezultatele conversiei unei valori smalldatetime într-o valoare datetimeoffset(4).

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) 

Pentru conversia în datetime2(n), valoarea smalldatetime este copiată în valoarea datetime2(n). Secundele fracționare sunt setate la 0. Următorul cod arată rezultatele conversiei unei valori smalldatetime într-o valoare datetime2(4).

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) 

Exemple

A. Casting string literals with seconds to smalldatetime

Exemplul următor compară conversia secundei din string literals în smalldatetime.

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); 
Input Output
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. Compararea tipurilor de date de dată și oră

Exemplul următor compară rezultatele turnării unui șir de caractere în fiecare tip de date de dată și oră.

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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.