Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

jak przekonwertować wszystkie kolumny datetime w SQL Server 2005 express data z danymi do UTC

Zakładając, że znasz przesunięcie między czasem UTC a strefą czasową, w której przechowywane są dane, jest to całkiem proste:

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

Zauważ, że może to być negatywne lub pozytywne, nie mam pojęcia, po której stronie Greenwich jesteś.

Oczywiście staje się to bardziej skomplikowane, jeśli jesteś w strefie czasowej, która przestrzega czasu letniego; w takim przypadku możesz potrzebować bardziej rozbudowanego rozwiązania, takiego jak użycie tabeli kalendarza. Jest to szczególnie skomplikowane, jeśli Twoje dane sięgają wstecz, na przykład, zanim George Bush zmienił amerykańskie zasady czasu letniego. Mam artykuł sprzed wieków, który może być przydatny ; nowsza seria jest tutaj:

Również jeśli którekolwiek z twoich danych wypadną w tym oknie między godziną 00:00 a 02:00 w dniu wiosenno-jesiennym, kiedy nigdy nie jestem pewien, czy warto je zmienić, ponieważ jest to dzień zmiany, czy nie. bo jest przed 2 w nocy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy lepiej zrobić equi łączyć w klauzuli from czy klauzula where?

  2. Jak mogę sprawdzić, czy istnieje ograniczenie SQL Server?

  3. Transactionscope rzucający wyjątek ta platforma nie obsługuje transakcji rozproszonych podczas otwierania obiektu połączenia

  4. Warunkowe ORDER BY w zależności od wartości kolumn

  5. Tabela a wydajność tabeli temperatur