回答

收藏

SQL Server中奇怪的日期时间行为

技术问答 技术问答 301 人阅读 | 0 人回复 | 2023-09-12

declare @data datetime set @data = '2011-01-59:99select @data结果是:
( A( v$ w  U$ M" d    2011-01-02 00:00:00.000第二个例子:6 P. Q% H, f9 T" r& w4 k
    declare @data datetime set @data = '2011-01-59:99select 1 where @data >= '2011-01-02 00:00:00:000'结果" m4 P" t. c  ], G! t% V6 v) U
    1我的问题是为什么,如何使它正确?5 y! p7 }  \) l: n
编辑问题是在SQL Server 2008中$ z* H8 t8 z' z( K2 V
                                                               
' Q  }# ^% d2 v. F    解决方案:                                                                4 I- D8 R  {# [2 w' M
                                                                您有精度问题。.九九九会四舍五入.000。# x4 i  h" u4 _! L. V, M5 S  H* Y
.尽可能接近第二天。' M9 C) Y5 k. w3 V
declare @data datetimeset @data = '2011-01-01T23:59:59.997'select @data这里查看日期时间小数秒精度舍入部分 http://msdn.microsoft.com/zh-* _# J5 i" e5 e/ {3 \! ?
cn/library/ms187819.aspx
6 K* V& P5 _$ Y假如你用的是SQL Server 2008,可以datetime2(3)设置为毫秒级。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则