Time zone conversion in T-SQL

Je hebt het zeker wel eens aangetroffen, twee verschillende tijdzones binnen dezelfde database. De ene waarde in CET, ook wel ‘Central European Standard Time’ en de andere waarde in UTC (+00:00). Nu bevat het data type DATETIMEOFFSET() de ‘offset’ van de betreffende tijdzone, maar DATETIME() of DATETIME2() hebben dit niet.

Wordt het tijd om alles in één keer recht te trekken en ‘oude’ waardes te converteren naar UTC? Ik hoor je denken, waarom al die moeite? Nou… omdat je UTC-waardes m.b.v. T-SQL véél gemakkelijker kunt omrekenen naar een andere tijdzones:

 

En daarnaast is UTC (ook wel GMT +00:00) toch wel de wereldwijde standaard is geworden.
Zo zie je binnen JSON ook vaak het volgende datum/tijd-formaat:
‘2020-06-09T06:53:15.000Z

Waarbij de ‘Z’ staat voor Zulu, ook wel UTC met +00:00 indien er verder geen specifieke tijdzone achter staat.

 

Okay okay, maar hoe converteer ik datum/tijd-waardes die nog niet in UTC staan?
Hierbij help ik je graag met de volgende voorbeelden:

 

De bovenstaande T-SQL code kun je hier downloaden.

 

 

 
Nieuwsgierig naar de mogelijkheden van Azure en DevOps?
Neem dan contact met ons op: clint.huijbers@monkeyconsultancy.nl