Ervan uitgaande dat u de offset kent tussen UTC en de tijdzone waarin de gegevens zijn opgeslagen, is het vrij eenvoudig:
DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);
Merk op dat dit negatief of positief kan zijn, ik heb geen idee aan welke kant van Greenwich jij bent.
Dit wordt natuurlijk ingewikkelder als u zich in een tijdzone bevindt die zomertijd in acht neemt; in dit geval heeft u mogelijk een uitgebreidere oplossing nodig, zoals het gebruik van een kalendertabel. Dit is met name ingewikkeld als uw gegevens teruggaan tot voordat George Bush bijvoorbeeld de Amerikaanse zomertijdregels wijzigde. Ik heb wel een artikel van lang geleden dat nuttig kan zijn ; een recentere serie is hier:
- Conversie tussen tijdzones in SQL Server afhandelen - deel 1
- Conversie tussen tijdzones in SQL Server afhandelen - deel 2
- Conversie tussen tijdzones in SQL Server afhandelen - deel 3
Ook als een van uw gegevens in dat venster valt tussen 00:00 uur en 02:00 uur op een lente-vooruit-/terugvaldag, waar ik nooit zeker weet of het juist is om het te wijzigen omdat het de wisseldag is of om niet te veranderen omdat het voor 2 uur 's nachts is.