表列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
如何通过SQL查询转换13位数字?
答案 0 :(得分:0)
如果我们假设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())))