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);
De bovenstaande zoekopdracht die gebruikmaakt van dateadd
zal altijd 4 uur aftrekken. Als het je doel is om een willekeurige datetime van UTC naar lokale tijd te converteren, dan is het ingewikkelder omdat de offset die je moet optellen/aftrekken afhangt van de originele datetime. Een enkele waarde zoals -4 zal niet altijd werken. Hier zijn enkele ideeën om met het algemene geval om te gaan:
Effectief datums converteren tussen UTC en lokale (dwz PST) tijd in SQL 2005