1st select statement gives last 3 days of a month. 2nd select statement gives last 2 days of a month. 3rd select statement gives last day of a month.
Look the difference, in below 3 select statement, number of days change (-1,-2,-3) is same for 3 select statements and there is change in only a month for 3 select statements .
When compare the results of 2nd query of select 1 , 2nd query of select 2 and
compare the results of 3rd query of select 1 , 3rd query of select 2, 3rd of select 3
For select 1
select DATEADD(MM,datediff(MM,0,getdate())+1,-1), DATEADD(MM,datediff(MM,0,getdate())+1,-2),
DATEADD(MM,datediff(MM,0,getdate())+1,-3)
Result is:
2015-05-31 00:00:00.000 2015-05-30 00:00:00.000 2015-05-29 00:00:00.000
For select 2
select DATEADD(MM,datediff(MM,0,getdate()),-1), DATEADD(MM,datediff(MM,0,getdate()),-2),
DATEADD(MM,datediff(MM,0,getdate()),-3)
Result is:
2015-04-30 00:00:00.000 2015-04-30 00:00:00.000 2015-04-29 00:00:00.000
For select 3
select DATEADD(MM,datediff(MM,0,getdate())-2,-1), DATEADD(MM,datediff(MM,0,getdate())-2,-2),
DATEADD(MM,datediff(MM,0,getdate())-2,-3)
Result is :
2015-02-28 00:00:00.000 2015-02-28 00:00:00.000 2015-02-28 00:00:00.000
I got same 3 output's for select 3 and same 1st 2 output's for select 2,
please tell me, why same output for select 3 ? (though i have changed number of days like 1 select statement)
Mark as Answer if its helpful to you
---
Srihari