刚才在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不是精确值

版权声明:本文为lisabi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lisabi/p/3953982.html