SELECT DATEADD(second, @ts, {d '1970-01-01'}) as MSSQLdatetime
После того, как у вас есть дата, вы можете сделать dateadd для даты в зависимости от состояния летнего времени для возвращаемой даты. Для проверки на летнее время вам нужна некоторая форма функции, например:
CREATE function [dbo].[fn_GetDaylightSavingsTimeStart]
(@Year varchar(4))
RETURNS smalldatetime
as
begin
declare @DTSStartWeek smalldatetime, @DTSEndWeek smalldatetime
set @DTSStartWeek = '03/01/' + convert(varchar,@Year)
return case datepart(dw,@DTSStartWeek)
when 1 then
dateadd(hour,170,@DTSStartWeek)
when 2 then
dateadd(hour,314,@DTSStartWeek)
when 3 then
dateadd(hour,290,@DTSStartWeek)
when 4 then
dateadd(hour,266,@DTSStartWeek)
when 5 then
dateadd(hour,242,@DTSStartWeek)
when 6 then
dateadd(hour,218,@DTSStartWeek)
when 7 then
dateadd(hour,194,@DTSStartWeek)
end
end
Вам нужна симуляционная функция, чтобы найти, когда заканчивается летнее время, посмотрите на этот сайт для получения дополнительной информации: http://www.mssqltips.com/tip.asp?tip=1372