declare @createTime datetime = '2012-10-06 02:29:37.243';
-- original value, default formatting
select @createTime;
-- formatted
select convert(varchar, @createTime, 100);
-- subtract 4 hours, formatted
select convert(varchar, dateadd(hour, -4, @createTime), 100);
Kueri di atas yang menggunakan dateadd
akan selalu mengurangi 4 jam. Jika tujuan Anda adalah mengonversi datetime arbitrer dari UTC ke waktu lokal, maka itu lebih rumit karena offset yang perlu Anda tambahkan/kurangi bergantung pada datetime asli. Nilai tunggal seperti -4 tidak akan selalu berfungsi. Berikut adalah beberapa ide untuk menangani kasus umum:
Mengonversi tanggal secara efektif antara waktu UTC dan Lokal (mis. PST) di SQL 2005