有人知道ms sql的cast函数把datetime算成binary的具体规则吗?
现在有导出的数据sql脚本一份,里面的datetime类型的值都是如下格式
CAST(0x0000A20D00EB07DD AS DateTime))
根据我测试得出的结论,0x0000A20D00EB07DD 这个值是被cast把时间类型转换为binary得到的,即
CAST(时间 AS binary))
现在问题就是,它的具体算法是什么,我需要在sql server外部读取该字符串并转回去,或者如果你们有别的办法直接让他输出标准格式的时间字符串也行
------解决方案--------------------
datetime占用8个字节,前4个字节存储base date(即1900年1月1日)之前或之后的天数,后4个字节存储午夜后的毫秒数。值范围:1753-01-01 到 9999-12-31。
上面这句是在网上搜的。后面的三个SQL语句是对上面这句进行的验证。
“15402973*10/3”这个是我试出来的,因为我用15402973转换不出来14:15:43.243这个值,只有*10/3后,才转换正确。猜测是精度的原因。