преобразование метки времени Epoch в sql server (удобочитаемый формат) - PullRequest
19 голосов
/ 25 января 2011

У меня проблема с преобразованием метки времени Unix в метку времени сервера sql.

У меня есть данные в таблице Excel, и я буду импортировать эти данные с помощью инструмента. Поэтому я ищу код или синтаксис, который может преобразовать метку времени Epoch в метку времени сервера sql.

У меня есть 3 разных столбца с одинаковым форматом. Как я могу изменить значения в этих столбцах.

Например:

  • Метка времени эпохи --- 1291388960
  • метка времени сервера sql --- 2010-12-03 15: 09: 20.000

Ответы [ 2 ]

21 голосов
/ 25 января 2011

У меня есть 3 разных столбца с одинаковым форматом.Как я могу изменить значения в этих столбцах.

Чтобы обновить 3 столбца в таблице, вы можете связать секунды DATEADD с эпохой (1 января 1970 г.) с именем столбца, т.е.

update tbl set
    datetimecol1 = dateadd(s, epochcol1, '19700101'),
    datetimecol2 = dateadd(s, epochcol2, '19700101'),
    datetimecol3 = dateadd(s, epochcol3, '19700101')

Вы не можете обновитьна месте, так как столбец bigint также не может быть столбцом даты и времени.Вы должны обновить их в 3 других столбцах.

16 голосов
/ 25 января 2011

Используйте функцию DATEADD :

SELECT DATEADD(ss, 1291388960, '19700101')

..., указав дату 1 января 1970 года. В этом примере она была предоставлена ​​в формате ГГГГММДД.

DATEADD вернет тип данных DATETIME, поэтому, если у вас установлены таблица и столбец, вы можете использовать функцию INSERT / UPDATE в зависимости от ваших потребностей.Предоставьте подробности, а я уточню.Если у вас есть DATETIME для работы, вы можете использовать CAST или CONVERT для форматирования даты в TSQL.

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