Verschillende datumtypes SQL
In SQL Server Management Studio zijn er verschillende datumtypes beschikbaar. De meest gebruikte zijn de volgende:
- time: alleen de tijd wordt opgeslagen. Als er ook een datum aanwezig is dan wordt deze datum op de default datum 1900-01-01 gezet.
- date: alleen de datum wordt opgeslagen. Als er ook een tijd aanwezig is dan wordt de tijd op de default waarde 00:00:00 gezet.
- smalldatetime: zowel de datum als de tijd wordt opgeslagen. Van de tijd worden de uren en minuten opgeslagen. Waardes die 29.998 seconde of minder zijn worden naar beneden afgerond naar de dichtsbijzijnde minuut. Waardes van 29.999 seconds of meer worden naar boven afgerond naar de dichtsbijzijnde minuut.
- datetime: zowel de datum als de tijd wordt opgeslagen. Fracties van de seconden worden tot 3 cijfers na de komma opgeslagen.
- datetime2: zowel de datum als de tijd wordt opgeslagen. Fracties van de seconden worden tot 7 cijfers na de komma opgeslagen.
In onderstaande tabel staan de datumtypes met het bijbehorende formaat en de nauwkeurigheid.
Datum Type | Formaat | Nauwkeurigheid |
---|---|---|
time | hh:mm:ss[.nnnnnnn] | 100 nanoseconden |
date | YYYY-MM-DD | 1 dag |
smalldatetime | YYYY-MM-DD hh:mm:ss | 1 minuut |
datetime | YYYY-MM-DD hh:mm:ss[.nnn] | 0.00333 seconde |
datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] | 100 nanoseconden |
In onderstaande tabel zie je het resultaat voor de verschillende datumtypes. Als invoer hebben we de datum ‘2014-04-01 13:53:35.1234567‘ gebruikt met als type datetime2.
Bij het type time is de datum vervangen door de default datum 1900-01-01. Bij het type date is de tijd vervangen door de default tijd 00:00:00. Bij het type smalldatetime zijn de secondes naar boven afgerond naar een gehele minuut (54 minuten). Bij het type datetime zijn de getallen na drie decimalen achter de komma op de default waarde gezet.
Zelf proberen
Wil je zelf experimenteren met de dataset? Gebruik dan onderstaande SQL queries. Je kunt de queries kopiëren en plakken.Tabel maken:
[sql]
CREATE TABLE datetimetabel
(
ID INT NOT NULL,
DatumType VARCHAR(30),
DatumVeld datetime2
)
[/sql]
Tabel vullen:
[sql]
DECLARE @datetime2type datetime2 = ‘2014-04-01 13:53:35.1234567’
INSERT INTO datetimetabel
VALUES
(1, ‘time’, CAST(@datetime2type AS time)),
(2, ‘date’, CAST(@datetime2type AS date)),
(3, ‘smalldatetime’, CAST(@datetime2type AS smalldatetime)),
(4, ‘datetime’, CAST(@datetime2type AS datetime)),
(5, ‘datetime2’, @datetime2type)
[/sql]
Geef een reactie