Za předpokladu, že znáte posun mezi UTC a časovým pásmem, ve kterém jsou data uložena, je to docela jednoduché:
DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);
Všimněte si, že to může být negativní nebo pozitivní, nemám ponětí, na které straně Greenwiche jste.
Samozřejmě to bude složitější, pokud se nacházíte v časovém pásmu, kde platí letní čas; v tomto případě možná budete potřebovat rozsáhlejší řešení, jako je použití kalendářové tabulky. To je zvláště složité, pokud vaše data sahají dříve, než George Bush například změnil americká pravidla DST. Mám článek z dávné minulosti, který může být užitečný ; novější série je zde:
- Řešení převodu mezi časovými pásmy na serveru SQL Server – část 1
- Řešení převodu mezi časovými pásmy na serveru SQL Server – část 2
- Řešení převodu mezi časovými pásmy na serveru SQL Server – část 3
Také pokud některá z vašich dat spadají do tohoto okna mezi 12:00 a 2:00 v jarní den dopředu/dozadu, kdy si nikdy nejsem jistý, zda je správné je změnit, protože je den přechodu, nebo neměnit protože je před 2:00.