2011-01-24 7 views
17

У меня возникла проблема с преобразованием метки времени Unix в метку времени сервера sql.преобразование временной метки эпохи в sql-сервер (человеко читаемый формат)

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

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

Например:

  • Epoch метки времени --- 1291388960
  • SQL Server временная метка --- 2010-12-03 15: 09: 20,000

ответ

17

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

Для обновления 3 столбцов в таблице, можно пару секунд DATEADD к эпохе (1 Jan 1970) с именем столбца, т.е.

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

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

+0

благодарит за ответ. Действительно ценю это.... – Shahsra

13

Используйте DATEADD function:

SELECT DATEADD(ss, 1291388960, '19700101') 

... указание даты 1 января 1970 года. В этом примере оно было предоставлено в YYYYMMDD f Ormat.

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

+0

спасибо, что дал мне синтаксис, но у меня около 20 миллионов записей ..... как я могу преобразовать все это? – Shahsra

+0

@Shahsra: зависит от того, что вы хотите сделать - если это временно, используйте временную таблицу. В противном случае вам нужен столбец для дампа данных: либо путем добавления столбца в существующую таблицу, либо новой таблицы, клонированной из оригинала. Вы должны предоставить подробную информацию. –

+0

благодарит много за меня ... Я получил решение, которое я уже сделал. Очень ценю за вашу помощь. – Shahsra

Смежные вопросы