postgresql - 微软十六进制日期

标签 postgresql datetime type-conversion

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

0x00009CEF00A25634

我找到这篇文章: Help me translate long value, expressed in hex, back in to a date/time

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

最佳答案

选择 CAST(0x00009CEF00A25634 作为日期时间) 给出 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显然是这样做的。我自己没有测试过。

关于postgresql - 微软十六进制日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7580700/

相关文章:

postgresql - 如何设计数据库服务类

postgresql - 在 PostgreSQL 中创建表时向列添加注释?

ruby - 如何在 Ruby 中形成 "fuzzy date"?

Python 3.4 strptime() 不工作

postgresql - sonar V.4.3.1 不启动postgresql

json - PostgreSQL - 从查询构造格式良好的 json 对象

javascript - JavaScript 中的日期格式转换

assembly - NASM 程序集从 ASCII 转换为十进制

python - 将 Python 中数据帧的日期时间更改为以一位数小时结尾

ios - objective-c 中UILabel的随机数