TSQL日期函数的疑问
0
今天在看SQL SERVER教程的时候测试出来以下三种写法,同样都是利用某个月末日期作为锚点(原书描述如此),可以计算出查询日期所在的月末日期.但是测试在2月的时候出了问题:SELECT DATEADD(month,DATEDIFF(MONTH,'20171231','2016/2/1'),'20171231') AS A;--结果是 2016-02-29 00:00:00.000
SELECT DATEADD(month,DATEDIFF(MONTH,'20171130','2016/2/1'),'20171130') AS B;--结果是 2016-02-29 00:00:00.000
SELECT DATEADD(month,DATEDIFF(MONTH,'20170228','2016/2/1'),'20170228') AS C;--结果是 2016-02-28 00:00:00.000
请问为什么第三个查询C项的结果是 2016/2/28 而不是2016/2/29.
Tsql是怎么样的逻辑去判断第三种写法的?
SELECT DATEADD(month,DATEDIFF(MONTH,'20171130','2016/2/1'),'20171130') AS B;--结果是 2016-02-29 00:00:00.000
SELECT DATEADD(month,DATEDIFF(MONTH,'20170228','2016/2/1'),'20170228') AS C;--结果是 2016-02-28 00:00:00.000
请问为什么第三个查询C项的结果是 2016/2/28 而不是2016/2/29.
Tsql是怎么样的逻辑去判断第三种写法的?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
li052468 2017-03-06 回答
赞同来自: