当月的最后一天SELECT DATEADD(dd,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 2014-09-30 00:00:00.000

   刚才在SQL SERVER2012中试了一下,以下三种方法都能得到2014-9-30日,只是略有不同的是日前后面的时间:

   1.SELECT DATEADD(ms,-2,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)),运行结果2014-09-30 23:59:59.997

   2.SELECT DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)),运行结果2014-09-30 23:59:59.997

   3.SELECT DATEADD(dd,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) ,运行结果2014-09-30 00:00:00.000

对于3,我没有任何疑问,而对于1和2,比较郁闷,为什么-2和-3的结果一样呢,包括-4都一样,而-5的时候,运行结果却变成2014-09-30 23:59:59.993,谁能帮我解答一下呢

 

 

高人说ms不是精确值

posted on 2014-09-03 16:25  lisa_bi  阅读(1160)  评论(0编辑  收藏  举报