sql - 我想通过 sql 查询将日期时间作为 13 位数字插入到 SQL 表中
问题描述
表格列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 位数字?
解决方案
如果我们假设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())))
推荐阅读
- mediawiki - 在(MediaWiki)wiki 上显示远处的图像?
- jquery - jquery remove() 未按预期运行
- amazon-dynamodb - 使用 CloudFormation 为现有 dynamoDB 表创建二级全局索引
- python - 如何从数组中显示康威的生命游戏
- matlab - 为什么 Matlab 会更改作为主对象属性的所有对象的值?
- c# - 如何访问列表中每个对象的项目并对其执行一些操作?
- javascript - 角中性能.navigation.type 的替代品是什么?
- mysql - 带有子选择的慢速运行查询
- c# - 收藏已修改;当我不修改循环内的集合时,枚举操作可能不会执行
- sapui5 - ui5-tooling build 创建的 dist 文件夹在部署到 SCP 时不起作用