日期的问题
declare @md datetime
set @md= '00:00:01 '
select cast(@md as binary(8))
为什么结果是 "0x000000000000012C "?
------解决方案--------------------不知道LZ希望得到什么样的结果
binary 是固定长度的二进制数据
0x000000000000012C 是二进制数值,他的长度实际上只有8
我的计算机基础知识不好,这个长度是怎么算的我也不懂
------解决方案--------------------SQL Server联机帮助(SQL Server Books Online :BOL)的解释是 "DATETIME数据类型的值储存在2个4byte长度的整数中。 "
------解决方案--------------------其实是这样的, 该值的确是储存在2个4byte长度的整型中,但是被打包成了BINARY(8)。前4个字节保存和19000101这个日期的 差值,我们知道SQL Server的基准日期是19000101。
后4个字节保存时间数据,该数据是以午夜开始的累积毫秒数。
------解决方案--------------------还有一点就是精确度为1/300秒!
估计你明白怎么回事了吧!