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);
Заявката по-горе, която използва dateadd
винаги ще изважда 4 часа. Ако целта ви е да конвертирате произволна дата и час от UTC в местно време, тогава е по-сложно, защото отместването, което трябва да добавите/извадите, зависи от оригиналната дата и час. Една единствена стойност като -4 не винаги работи. Ето някои идеи за справяне с общия случай:
Ефективно преобразуване на дати между UTC и местно (т.е. PST) време в SQL 2005