smalldatetime (Transact-SQL)

  • 07/22/2017
  • 4 minuten om te lezen
    • M
    • j
    • c
    • M
    • m
    • +4

Geldt voor: SQL Server (alle ondersteunde versies) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse

Geeft een datum aan die wordt gecombineerd met een tijd van de dag. De tijd is gebaseerd op een 24-uurs dag, met seconden altijd nul (:00) en zonder fractionele seconden.

Note

Gebruik de datetime, date, datetime2 en datetimeoffset datatypes voor nieuw werk. Deze typen zijn in overeenstemming met de SQL-standaard. Ze zijn beter overdraagbaar. time, datetime2 en datetimeoffset bieden meer seconden precisie. datetimeoffset biedt ondersteuning voor tijdzones voor wereldwijd uitgerolde toepassingen.

smalldatetime beschrijving

Property Value
Syntax smalldatetime
Gebruik DECLARE @MySmalldatetime smalldatetime
CREATE TABLE Table1 ( Column1 smalldatetime )
Voorkeur string literal formats
(gebruikt voor down-level client)
Niet van toepassing
Datumbereik 1900-01-01 t/m 2079-06-06
Januari 1, 1900, t/m 6 juni 2079
Tijdbereik 00:00:00 t/m 23:59:59
2007-05-09 23:59:59 zal afronden op
2007-05-10 00:00:00
Elementbereiken JJJJ is vier cijfers, variërend van 1900, tot 2079, die een jaar vertegenwoordigen.
MM is twee cijfers, van 01 tot 12, voor een maand in het opgegeven jaar.
DD is twee cijfers, van 01 tot 31, afhankelijk van de maand, voor een dag in de opgegeven maand.
hh is twee cijfers, van 00 tot 23, voor het uur.
mm is twee cijfers, van 00 tot 59, voor de minuut.
ss is twee cijfers, van 00 tot 59, voor de seconde. Waarden van 29,998 seconden of minder worden naar beneden afgerond tot de dichtstbijzijnde minuut. Waarden van 29,999 seconden of meer worden naar boven afgerond op de dichtstbijzijnde minuut.
Character lengte 19 posities maximum
Storage size 4 bytes, fixed.
Nauwkeurigheid Een minuut
Standaardwaarde 1900-01-01 00:00:00
Kalender Gregoriaans
(Omvat niet het volledige jaartallenbereik.)
Gebruiker-gedefinieerde fractionele seconde precisie Nee
Tijdzone offset bewust en behoud Nee
Daglichtbesparing bewust Nee

ANSI en ISO 8601 Compliance

smalldatetime is niet ANSI of ISO 8601 compliant.

Omzetten van datum- en tijdgegevens

Wanneer u naar datum- en tijdgegevenstypen converteert, weigert SQL Server alle waarden die het niet als datum of tijd herkent. Zie CAST en CONVERT (Transact-SQL) voor informatie over het gebruik van de functies CAST en CONVERT met datum- en tijdgegevens.

Omzetten van smalldatetime naar andere datum- en tijdtypen

Dit gedeelte beschrijft wat er gebeurt wanneer een smalldatetime-gegevenstype wordt geconverteerd naar andere datum- en tijdgegevenstypen.

Voor een conversie naar datum worden het jaar, de maand en de dag gekopieerd. De volgende code toont de resultaten van de conversie van een smalldatetime waarde naar een date waarde.

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) 

Wanneer de conversie naar time(n) is, worden de uren, minuten, en seconden gekopieerd. De fractionele seconden worden op 0 gezet. De volgende code toont het resultaat van de conversie van een smalldatetime waarde naar een time(4) waarde.

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) 

Wanneer de conversie naar datetime is, wordt de smalldatetime waarde gekopieerd naar de datetime waarde. De fractionele seconden worden op 0 gezet. De volgende code toont het resultaat van de conversie van een smalldatetime waarde naar een datetime waarde.

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) 

Voor een conversie naar datetimeoffset(n), wordt de smalldatetime waarde gekopieerd naar de datetimeoffset(n) waarde. De fractionele seconden worden op 0 gezet, en de tijdzone offset wordt op +00:0 gezet. De volgende code toont de resultaten van de conversie van een smalldatetime waarde naar een datetimeoffset(4) waarde.

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) 

Voor de conversie naar datetime2(n), wordt de smalldatetime waarde gekopieerd naar de datetime2(n) waarde. De fractionele seconden worden op 0 gezet. De volgende code toont het resultaat van de conversie van een smalldatetime waarde naar een datetime2(4) waarde.

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) 

Voorbeelden

A. Casting string literals met seconden naar smalldatetime

Het volgende voorbeeld vergelijkt de conversie van seconden in string literals naar 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. Het vergelijken van datum en tijd datatypes

Het volgende voorbeeld vergelijkt de resultaten van het casten van een string naar elk datum en tijd datatype.

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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.