2016-10-13 5 views
0

Я много видел, чтобы конвертировать Unix-время из других форматов в datetime, но ничего не было с микросекунд. Как вы можете выбрать поле с отметкой времени 1470562081943371, не получая переполнения с выходом ГГГГ-ММ-ДД ЧЧ: ММ: СС: ММ?Как преобразовать время Unix в микросекундах с SQL Server?

+0

вы можете использовать BIGINT? – Jeremy

+0

Да, это то, что он будет хранить. – Fastidious

+0

так что ... выберите его? я просто создал переменную типа bigint, сохранил номер и выбрал его без проблем. Не знаете, какова ваша настоящая проблема ... – Jeremy

ответ

1

Не уверен, если это устройство правильно, но ...

Declare @UnixTime bigint = 1470562081943371 
Select DateAdd(MS,round(((@UnixTime/1000000.)-(@UnixTime/1000000))*1000,0),DateAdd(SECOND,(@UnixTime/1000000),'1970-01-01 00:00:00')) 

Возвращает

2016-08-07 09:28:01.943 

Подтвержденные результаты с http://www.epochconverter.com/

enter image description here

+0

Выглядит правильно. Я знаю, что это 8/7/2016 – Fastidious

+0

@Fastidious Well, что обнадеживает. Надеюсь, вы сможете подтвердить временную часть. Если вам не нужны миллисекунды, просто отключите первый DateAdd (MS ... –

+1

@Fastidious Confirmed !! http://www.epochconverter.com/ –

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

  • Нет связанных вопросов^_^