SQL: конвертировать GMT в секундах в DateTime - PullRequest
0 голосов
/ 15 января 2010

У меня есть таблица с двумя столбцами времени по Гринвичу в секундах и смещением в минутах, например:

  SELECT TOP 1 StartTime, OffSet FROM MyTable;
  1247242537  -420 -- as example

Какую функцию SQL я могу использовать для преобразования ее в datetime в гггг-ММ-ддчч: мм: сс как TimeStamp?Я использую SQL-сервер SQL Server 2005.

1 Ответ

2 голосов
/ 15 января 2010

Это должно быть сделано, при условии, что вы указали дату эпохи 01.01.1970 (обычно для секунд по Гринвичу, но вам нужно будет подтвердить)

select dateAdd(ss,1247242537+(-420*60),'1/1/1970') 
 == >  2009-07-10 09:15:37.000

Для вашего кода используйте

select DATEADD(ss,StartTime+(Offset*60),'1/1/1970') as TheTime FROM myTable

Убедитесь, что вы найдете несколько тестовых примеров, чтобы убедиться, что дата эпохи соответствует ожидаемой. Как правило, время по Гринвичу - это количество секунд после 01.01.1970 в 12:00, поэтому DateAdd обрабатывает эту часть. Смещение - это количество минут, отличное от GMT, поэтому умножьте его на 60, чтобы получить секунды, и соответственно измените значение на DateAdd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...