首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

日期的有关问题

2012-01-23 
日期的问题declare@mddatetimeset@md 00:00:01selectcast(@mdasbinary(8))为什么结果是 0x0000000000000

日期的问题
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秒!
估计你明白怎么回事了吧!

热点排行