sql >> Databáze >  >> RDS >> Sqlserver

Efektivní převod dat mezi UTC a místním (tj. PST) časem v SQL 2005

Vytvořte dvě tabulky a poté je připojte, abyste převedli uložená data GMT na místní čas:

TimeZones     e.g.
---------     ----
TimeZoneId    19
Name          Eastern (GMT -5)
Offset        -5

Vytvořte tabulku letního času a naplňte ji co největším množstvím informací (místní zákony se neustále mění, takže neexistuje způsob, jak předvídat, jak budou data vypadat roky v budoucnosti)

DaylightSavings
---------------
TimeZoneId    19
BeginDst      3/9/2008 2:00 AM
EndDst        11/2/2008 2:00 AM

Přidejte se k nim takto:

inner join  TimeZones       tz on x.TimeZoneId=tz.TimeZoneId
left join   DaylightSavings ds on tz.TimeZoneId=ds.LocalTimeZone 
    and x.TheDateToConvert between ds.BeginDst and ds.EndDst

Převeďte data takto:

dateadd(hh, tz.Offset + 
    case when ds.LocalTimeZone is not null 
    then 1 else 0 end, TheDateToConvert)


  1. Režie sledování vytváření #temp tabulky

  2. Jak zkontrolovat nastavení konfigurace pro databázovou poštu na serveru SQL Server (T-SQL)

  3. Jak zmenšit velikost datového souboru na SQL Server (T-SQL)

  4. Jak provést hromadnou korespondenci v Accessu 2016