Я хотел бы вставить дату и время в таблицу SQL в виде 13-значного числа по запросу SQL - PullRequest
0 голосов
/ 17 сентября 2018

Столбец таблицы assignedDate значение представляет собой 13-значное число, например 1536346340276, формат: 2014-12-31 15:17:24.736

Как только я вставляю данные с запросом

INSERT INTO Test (id, assignedDate)
VALUES (1, (SELECT CAST(CONVERT(DATETIME, '2014-12-31 15:17:24.736') AS NUMERIC)))

Результат42003

Как преобразовать 13-значное число с помощью SQL-запроса?

1 Ответ

0 голосов
/ 17 сентября 2018

Если мы предположим, что 1536346340276 на самом деле не переводится в 2014-12-31 15:17:24.736, но что 13-значное число является просто примером данных, находящихся в настоящий момент в таблице, и что указанная дата является примером того, как формат ввода будетбыть, похоже, что на самом деле это может быть время Unix

SELECT DATEADD(second, 1536346340276/1000 ,'1970/1/1')          -- is 2018-09-07 18:52:20.000
SELECT DATEDIFF_BIG(MILLISECOND,{d '1970-01-01'}, getdate()), GETDATE()     -- is 1537195014053 at 2018-09-17 14:36:54.053

Если вы используете SQL Server 2016 или выше, новая вставка будет выглядеть так:

INSERT INTO Test (id, assignedDate)
VALUES (1, (SELECT DATEDIFF_BIG(MILLISECOND,{d '1970-01-01'}, getdate())))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...