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