sql >> Database teknologi >  >> RDS >> Sqlserver

hvordan man konverterer alle datetime kolonner i en sql server 2005 express database med data til UTC

Hvis du antager, at du kender forskydningen mellem UTC og den tidszone, dataene er lagret i, er det ret simpelt:

DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);

Bemærk, at det kan være negativt eller positivt, jeg aner ikke, hvilken side af Greenwich du er.

Dette bliver selvfølgelig mere kompliceret, hvis du er i en tidszone, der observerer sommertid; i dette tilfælde har du muligvis brug for en mere ekspansiv løsning, såsom at bruge en kalendertabel. Dette er særligt komplekst, hvis dine data for eksempel strækker sig tilbage, før George Bush ændrede de amerikanske sommertidsregler. Jeg har en artikel fra lang tid siden, som kan være nyttig ; en nyere serie er her:

Også hvis nogen af ​​dine data falder i det vindue mellem kl. 12.00 og 02.00 på en dag for forår/fald tilbage, hvor jeg aldrig er sikker på, om det er rigtigt at ændre det, fordi det er overgangsdagen eller ikke ændres. det fordi det er før kl. 2.




  1. øge sidebredden i Oracle Reports Builder

  2. Hvordan taler Access med ODBC-datakilder? Del 6

  3. Hvad er de største fordele ved at bruge INDEXES i mysql?

  4. Hvordan caster jeg en streng til heltal og har 0 i tilfælde af fejl i castet med PostgreSQL?