Dengan asumsi Anda mengetahui offset antara UTC dan zona waktu tempat data disimpan, ini cukup sederhana:
DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);
Perhatikan bahwa mungkin negatif atau positif, saya tidak tahu Anda berada di sisi Greenwich yang mana.
Tentu saja ini menjadi lebih rumit jika Anda berada di zona waktu yang mengamati waktu musim panas; dalam hal ini Anda mungkin memerlukan solusi yang lebih luas seperti menggunakan tabel kalender. Ini sangat rumit jika data Anda diperluas kembali sebelum George Bush mengubah aturan DST Amerika, misalnya. Saya memiliki artikel lama yang mungkin berguna ; seri yang lebih baru ada di sini:
- Menangani konversi antar zona waktu di SQL Server - bagian 1
- Menangani konversi antar zona waktu di SQL Server - bagian 2
- Menangani konversi antar zona waktu di SQL Server - bagian 3
Juga jika ada data Anda yang jatuh di jendela itu antara 12:00 dan 2:00 pada hari musim semi maju/mundur, di mana saya tidak pernah yakin apakah itu benar untuk mengubahnya karena ini adalah hari pergantian atau tidak berubah karena ini sebelum jam 2 pagi.