En supposant que vous connaissiez le décalage entre UTC et le fuseau horaire dans lequel les données sont stockées, c'est assez simple :
DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);
Notez que cela peut être négatif ou positif, je n'ai aucune idée de quel côté de Greenwich vous êtes.
Bien sûr, cela devient plus compliqué si vous êtes dans un fuseau horaire qui observe l'heure d'été; dans ce cas, vous aurez peut-être besoin d'une solution plus étendue, telle que l'utilisation d'un tableau de calendrier. Ceci est particulièrement complexe si vos données remontent avant que George Bush ne modifie les règles américaines de l'heure d'été, par exemple. J'ai un article d'il y a longtemps qui peut être utile ; une série plus récente est ici :
- Gérer la conversion entre les fuseaux horaires dans SQL Server - partie 1
- Gérer la conversion entre les fuseaux horaires dans SQL Server - partie 2
- Gérer la conversion entre les fuseaux horaires dans SQL Server - partie 3
De plus, si l'une de vos données tombe dans cette fenêtre entre 00h00 et 2h00 un jour d'avance/retombée de printemps, où je ne sais jamais s'il est juste de la changer parce que c'est le jour du changement ou de ne pas changer parce qu'il est avant 2h du matin.