您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

以毫秒为单位的日期时间字段查询在SQL Server中给出错误的结果

以毫秒为单位的日期时间字段查询在SQL Server中给出错误的结果

sql Server将时间部分存储为1/300从午夜起的第二个长滴答声的数量

23:59:59.999将四舍五入到00:00:00.000第二天的最接近刻度。

SELECT  CAST(CAST('2009-12-01 00:00:00.000' AS DATETIME) AS BINARY(8)),
        CAST(CAST('2009-12-01 23:59:59.997' AS DATETIME) AS BINARY(8)),
        CAST(CAST('2009-12-01 23:59:59.999' AS DATETIME) AS BINARY(8))



0x00009B8F 00000000    0x00009B8F 018B81FF    0x00009B90 00000000

在第一个值中,日期部分0x9B8F39823)是自以来的天数,Jan 1st, 1900时间部分0是自午夜以来的滴答数。

在第二个值中,0x018B81FF2591999924 * 60 * 60 * 300 - 1)是自午夜以来的最大滴答数。

最后,第三个值0在时间部分和日期部分增加一个

SQLServer 2022/1/1 18:35:15 有522人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶