2016-05-30 2 views
2

У меня возникла проблема с временной меткой эпохи с прикрепленными miliseconds.Преобразование эпохи с миллисекундами в дату в T-SQL

Формат моей эпохи метки времени является:

1439263190,2609999 

Строить в DATEADD функции могут обрабатывать только int значения.

Есть ли способы обхода?

KR Иоганн

+0

Try http://stackoverflow.com/questions/14716744/mssql-convert-milliseconds-since-1970- to-datetime2 или http://stackoverflow.com/questions/12524537/convert-utc-milliseconds-to-datetime-in-sql-server –

+1

2609999 мс? Каким должен быть дата-время для ценности, которое вы предоставили? – gofr1

+0

Мне нужно время, которое выглядит так: «27.07.2015 21: 00: 00.004» нужно 3 десятичных знака для ms. – Seits

ответ

0

Epoch Time (ака Unix Time) это количество секунд, прошедших с полуночи 1.1.1970.

Чтобы обойти функцию DateAdd, которая будет обрабатывать только целочисленные значения, просто присвойте значение целочисленной переменной и используйте ее в вызове DateAdd.

Например, этот код:

declare @epoch decimal(20,7) = 1439263190.2609999 
declare @epoch2 int = @epoch 
select @epoch, @epoch2, DATEADD(s, @epoch2, '1970-01-01 00:00:00') 

дает этот результат:

1439263190.2609999 1439263190 2015-08-11 03:19:50.000