tsql - 将 Numeric(19,0) 值转换为 DateTime
问题描述
我有一个数值 (19,0) 字段,其中包含值 1868570243000000。
数据库文档称该字段是“一个 EMR 生成的 ID,指示项目的签署时间”。
如何将其转换为 DateTime 值?
我已经尝试过这些方面的东西:
select dateadd(s, convert(bigint, 1868570243000) / 1000, convert(datetime, '1-1-1970 00:00:00'))
但我必须先删除 3 个零,然后它才能起作用。
并且...它给了我这个:2029 -03-18 23:17:23.000
当我期待这个时:2019 -03-18 23:17:23.000
月份、日期和时间是正确的 - 但它是未来 10 年!
提前致谢!!
解决方案
当前日期的纪元时间是1553023530
您的值1868570243
(未来十年)。
您可能想在此处验证您的数据和/或方法 Epoch Converter
只是为了好玩,试试:
Select OddValue = dateadd(SECOND, 1868570243000 / 1000, '1970-01-01 00:00:00')
,EpochValue = dateadd(SECOND, 1552951043000 / 1000, '1970-01-01 00:00:00')
,Delta = (1868570243000 - 1552951043000) / 1000
你会得到
OddValue EpochValue Delta
2029-03-18 23:17:23.000 2019-03-18 23:17:23.000 315619200.000000
推荐阅读
- python - Pandas,Python:如何在满足第二个条件的同时获得跨列的最大值
- c# - 如何在 Unity 中创建 360 度渲染纹理?
- wordpress-rest-api - WP REST Api 将帖子发布到远程 wordpress 网站
- php - 在另一个'中使用“with()”获取特定列
- python - Python - Dataframe - 将列数据拆分为新列 - 解释一些代码的含义
- php - 如何在 PHP 登录脚本中验证来自 SQL 的串联?
- xml - 未能检索到正确的节点数据
- mysql - 如何在mysql中将点添加到多边形或几何的所有点?
- python - Python 3.7 导入命令出现奇怪的 Pylint 错误
- ios - MKAnnotationView:在 annotationView 下方有文本并渲染 View