Microsoft Hex日期

Blu*_*ers 3 postgresql datetime type-conversion

我从Microsoft SQL Server数据库中获取以下日期/时间值:

0x00009CEF00A25634
Run Code Online (Sandbox Code Playgroud)

我发现这篇文章: 帮我翻译长值,用十六进制表示,回到日期/时间

这似乎是在正确的轨道,但通过使用我没有得到正确日期的代码,我的十六进制日期是不同的格式?如何将它们转换为正常日期,我正在使用PHP/PostgreSQL.

Mar*_*ith 8

select CAST (0x00009CEF00A25634 as datetime)2009-12-30 09:51:03.000

这是两个整数.一个用于日期部分0x00009CEF(十进制40175),一个用于时间部分00A25634(十进制10638900).日期部分是一个有符号整数,给出自1900年1月1日以来的天数.时间部分是一个表示刻度数的整数.

一秒钟内有300个滴答声.

可以看出,以下内容也返回相同的结果

SELECT DATEADD(MILLISECOND,10638900*10/3.0, DATEADD(DAY,40175, '19000101'))
Run Code Online (Sandbox Code Playgroud)

您需要弄清楚如何应用它postgres.

编辑:这里的答案 显然是这样做的.我自己没有测试过.