这个应该是四舍五入 造成的,select cast(cast('2014-01-02 12:00:01' as datetime) as int)就相当于 41639.5天,所以最后进了1位把

解决方案 »

  1.   

    你把这个日期的时间部分去掉,就可以了:select cast(cast(convert(varchar(10),'2014-01-02 12:00:01',120) as datetime) as int)
    /*
    41639
    */
      

  2.   

    哦,是的。
    select cast(cast('2014-01-02 12:00:01' as datetime) as float)就的返回结果41639.5000115741。。
    多谢了。
      

  3.   


    --是四舍五入造成的,你对比下这几句话就知道了
    select cast(cast('2014-01-02 11:59:59' as datetime) as int)
    select cast(cast('2014-01-02 12:00:01' as datetime) as int)
    select cast(cast('2014-01-02 11:59:59' as datetime) as float)
    select cast(cast('2014-01-02 12:00:01' as datetime) as float)-----------
    41639(1 行受影响)
    -----------
    41640(1 行受影响)
    ----------------------
    41639.4999884259(1 行受影响)
    ----------------------
    41639.5000115741(1 行受影响)