Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

как да конвертирате всички колони за дата и час в база данни на sql server 2005 express с данни в UTC

Ако приемем, че знаете отместването между UTC и часовата зона, в която се съхраняват данните, е доста просто:

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

Имайте предвид, че може да е отрицателно или положително, нямам представа от коя страна на Гринуич сте.

Разбира се, това става по-сложно, ако сте в часова зона, която спазва лятното часово време; в този случай може да се нуждаете от по-широко решение, като например използване на календарна таблица. Това е особено сложно, ако вашите данни се простират преди Джордж Буш да промени американските правила за лятно часово време, например. Имам статия от преди много време, която може да бъде полезна ; по-нова серия е тук:

Също така, ако някои от вашите данни попаднат в този прозорец между 00:00 ч. и 2:00 ч. сутринта на пролетен ден напред/назад, когато никога не съм сигурен дали е правилно да ги променя, защото това е денят за смяна, или да не променям защото е преди 2 сутринта.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Променете подозрителния режим на базата данни на SQL на нормален режим със заявка

  2. Как да добавите време към DateTime в SQL

  3. Прочетете .NET конфигурацията от базата данни

  4. Как да деактивирате улавянето на промяна на данни (CDC) в база данни в SQL Server - урок за SQL Server

  5. Групово вмъкване на частично цитиран CSV файл в SQL Server