将数值(19,0)转换为DateTime

时间:2019-03-19 19:14:54

标签: tsql

我有一个数值(19,0)字段,其值为1868570243000000。

数据库文档说该字段是“ EMR生成的ID,用于指示项目签名的时间。”

如何将其转换为DateTime值?

我已经尝试过以下方法:

select dateadd(s, convert(bigint, 1868570243000) / 1000, convert(datetime, '1-1-1970 00:00:00'))

但是我必须删除三个零,然后它才能起作用。

AND ...它给了我这个: 2029 -03-18 23:17:23.000

当我期望这样的时候: 2019 -03-18 23:17:23.000

月份,日期和时间是正确的-但未来10年!!

提前谢谢!

2 个答案:

答案 0 :(得分:2)

当您的值为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

答案 1 :(得分:1)

非常感谢您@John Cappelletti的帮助!真诚的感谢!

这是我能够结合使用您给我的内容和我过去使用过的一些其他代码得出的解决方案:

{
  "baseUrl": "https://staging-econsole.esihs.net/",
  "env": {
    "platform": "staging",
    "api_server": "https://pro.esiapi.io",
    "users": [
        {
            "name": "test01",
            "email": "test01@gmail.com"

        },
        {
            "name": "test02",
            "email": "test02@gmail.com"
        }
    ]

  }
}

这给了我我想要的东西。

再次感谢!