我从Microsoft sql Server数据库中获取以下日期/时间值:
0x00009CEF00A25634
我发现这篇文章:
Help me translate long value,expressed in hex,back in to a date/time
这似乎是在正确的轨道,但通过使用我没有得到正确日期的代码,我的十六进制日期是否以不同的格式?我如何将它们转换为正常日期,我正在使用PHP / Postgresql.
解决方法
选择CAST(0x00009CEF00A25634作为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'))
您需要弄清楚如何将其应用于postgres.
编辑:答案here显然是这样做的.我自己没有测试过.