Verschillende datumtypes SQL

Door Rachelle Blok
In SQL
11 maart 2015
0 Reacties
2981 Views

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.
datumtypes SQL
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]

Over "" Heeft 37 Posts

Rachelle Blok studeert Data Science en schrijft blogartikelen voor ReportingBLOG, over verschillende tools zoals Excel, SQL Server en Crystal Reports. Rachelle heeft daarnaast een eigen bedrijf in webdesign.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *