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);
Frågan ovan som använder dateadd
kommer alltid att dra av 4 timmar. Om ditt mål är att konvertera en godtycklig datetime från UTC till lokal tid, då är det mer komplicerat eftersom offset som du behöver lägga till/subtrahera beror på den ursprungliga datetime. Ett enstaka värde som -4 fungerar inte alltid. Här är några idéer för att hantera det allmänna fallet:
Konverterar effektivt datum mellan UTC och lokal (dvs. PST) tid i SQL 2005