解决方案 »

  1.   

    不要动不动就说BUG,去查询下文档,时间的精度
      

  2.   

    试了一下,确实有这个问题,但不能就此就确定是bug:select *
    from 
    (
    select cast('2014-08-02 00:00:00' as datetime) d 
    )t
    WHERE  d   > cast('2014-08-01 23:59:59.998' as datetime)
    /*
    2014-08-02 00:00:00.000
    */
    select *
    from 
    (
    select cast('2014-08-02 00:00:00' as datetime) d 
    )t
    WHERE  d   > cast('2014-08-01 23:59:59.999' as datetime) 
      

  3.   

    通过进一步分析,发现如下,这就不难解释上述的问题了,显然这个不是bug:select cast('2014-08-01 23:59:59.999' as datetime)
    /*
    2014-08-02 00:00:00.000
    */select cast('2014-08-01 23:59:59.998' as datetime)
    /*
    2014-08-01 23:59:59.997
    */
      

  4.   

    这个我也听说过,但是,
    DateTime在数据库里不是一个长整型的数据吗?
    那应该是精度比毫秒还要高的,
    为什么要四舍五入呢?
      

  5.   

    这个我也听说过,但是,
    DateTime在数据库里不是一个长整型的数据吗?
    那应该是精度比毫秒还要高的,
    为什么要四舍五入呢?每个时钟单位是3.33毫秒。这也就是为什么DATETIME 数据类型最小精确度是1/300