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);
Truy vấn ở trên sử dụng dateadd
sẽ luôn trừ đi 4 giờ. Nếu mục tiêu của bạn là chuyển đổi ngày giờ tùy ý từ UTC sang giờ địa phương thì sẽ phức tạp hơn vì phần bù mà bạn cần thêm / trừ phụ thuộc vào ngày giờ ban đầu. Một giá trị duy nhất như -4 không phải lúc nào cũng hoạt động. Dưới đây là một số ý tưởng để giải quyết trường hợp chung:
Chuyển đổi hiệu quả ngày giữa UTC và giờ địa phương (tức là. PST) trong SQL 2005