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);
Výše uvedený dotaz, který používá dateadd
bude vždy odečítat 4 hodiny. Pokud je vaším cílem převést libovolné datum a čas z UTC na místní čas, pak je to složitější, protože offset, který musíte přidat/odečíst, závisí na původním datovém čase. Jediná hodnota jako -4 nebude vždy fungovat. Zde je několik nápadů, jak se vypořádat s obecným případem:
Efektivní převod dat mezi UTC a místním (tj. PST) časem v SQL 2005