smalldatetime (Transact-SQL)

  • 22/07/2017
  • 4 minutter at læse
    • M
    • j
    • c
    • M
    • m
    • +4

Gælder for: SQL Server (alle understøttede versioner) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse

Definerer en dato, der er kombineret med et tidspunkt på dagen. Tiden er baseret på en 24-timers dag, hvor sekunderne altid er nul (:00) og uden brøkdele af sekunder.

Note

Brug datatyperne time, date, datetime2 og datetimeoffset til nyt arbejde. Disse typer er i overensstemmelse med SQL-standarden. De er mere bærbare. time, datetime2 og datetimeoffset giver mere præcision i sekunder. datetimeoffset giver understøttelse af tidszoner til globalt udrulning af programmer.

smalldatetime description

Property Value
Syntaks smalldatetime
Brug DECLARE @MySmalldatetime smalldatetime
CREATE TABLE Table1 Table1 ( Column1 smalldatetime )
Default string literal formats
(bruges til ned-level client)
Not applicable
Datointerval 1900-01-01-01 til 2079-06-06
1. januar, 1900 til og med den 6. juni 2079
Tidsinterval 00:00:00 til 23:59:59
2007-05-09 23:59:59:59 afrundes til
2007-05-10 00:00:00:00
Elementområder ÅÅÅÅÅÅ er fire cifre fra 1900 til 2079, som repræsenterer et år.
MM er to cifre, fra 01 til 12, der repræsenterer en måned i det angivne år.
DD er to cifre, fra 01 til 31 afhængigt af måneden, der repræsenterer en dag i den angivne måned.
hh er to cifre, fra 00 til 23, der repræsenterer timen.
mm er to cifre, fra 00 til 59, der repræsenterer minuttet.
ss er to cifre, fra 00 til 59, der repræsenterer sekundet. Værdier, der er 29,998 sekunder eller mindre, afrundes ned til det nærmeste minut. Værdier på 29,999 sekunder eller mere afrundes opad til nærmeste minut.
Karakterlængde Maksimum 19 positioner
Storage size 4 bytes, fast.
Nøjagtighed Et minut
Standardværdi 1900-01-01-01 00:00:00:00
Kalender Gregoriansk
(Omfatter ikke det komplette årstal.)
Bruger-defineret brøksekundernes præcision Nej
Viden om og bevarelse af tidszoneforskydning Nej
Vedkendt sommertid Nej

ANSI- og ISO 8601-overensstemmelse

smalldatetime er ikke ANSI- eller ISO 8601-kompatibel.

Konvertering af dato- og tidsdata

Når du konverterer til dato- og tidsdatatyper, afviser SQL Server alle værdier, som den ikke kan genkende som datoer eller tidspunkter. Du kan finde oplysninger om brug af CAST- og CONVERT-funktionerne med dato- og tidsdata under CAST og CONVERT (Transact-SQL).

Konvertering af smalldatetime til andre dato- og tidstyper

Dette afsnit beskriver, hvad der sker, når en smalldatetime-datatatype konverteres til andre dato- og tidsdatatyper.

For en konvertering til dato kopieres år, måned og dag. Den følgende kode viser resultaterne af konverteringen af en smalldatetime-værdi til en date-værdi.

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) 

Når konverteringen er til time(n), kopieres timer, minutter og sekunder. Brøksekunderne sættes til 0. Den følgende kode viser resultaterne af konverteringen af en smalldatetime-værdi til en time(4)-værdi.

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) 

Når konverteringen er til datetime, kopieres smalldatetime-værdien til datetime-værdien. Brøksekunderne sættes til 0. Følgende kode viser resultaterne af konverteringen af en smalldatetime-værdi til en datetime-værdi.

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) 

Ved en konvertering til datetimeoffset(n) kopieres smalldatetime-værdien til datetimeoffset(n)-værdien. Brudsekunderne sættes til 0, og tidszoneforskydningen sættes til +00:0. Den følgende kode viser resultaterne af konverteringen af en smalldatetime-værdi til en datetimeoffset(4)-værdi.

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) 

For konverteringen til datetime2(n) kopieres smalldatetime-værdien til datetime2(n)-værdien. Brøksekunderne sættes til 0. Den følgende kode viser resultaterne af konverteringen af en smalldatetime-værdi til en datetime2(4)-værdi.

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) 

Eksempler

A. Casting af strengliteraler med sekunder til smalldatetime

Det følgende eksempel sammenligner konverteringen af sekunder i strengliteraler til 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. Sammenligning af datatyper for dato- og klokkeslæt

Det følgende eksempel sammenligner resultaterne af casting af en streng til hver datatype for dato- og klokkeslæt.

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.