当月的最后一天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不是精确值