How to get the last month data and month to date data

匿名 (未验证) 提交于 2019-12-03 02:06:01

问题:

Need help in writing the query to get the last month data as well as month to date data.

If today's date is Mar 23 2011, I need to retrieve the data from last month and the data till todays date(means Mar 23 2011).

If date is Apr 3 2011, data should consists of March month data and the data till Apr 3rd 2011.

Thanks,

Shahsra

回答1:

Today including time info  : getdate() Today without time info    : DATEADD(DAY, DATEDIFF(day, 0, getdate()), 0) Tomorrow without time info : DATEADD(DAY, DATEDIFF(day, 0, getdate()), 1) Beginning of current month : DATEADD(month, datediff(month, 0, getdate()), 0) Beginning of last month    : DATEADD(month, datediff(month, 0, getdate())-1, 0) 

so most likely

WHERE dateColumn >= DATEADD(month, datediff(month, 0, getdate())-1, 0)   AND dateColumn 


回答2:

Step back one month, subtract the number of days to the current date, and add one day.

WHERE     DateField = DateAdd(       mm,        -1,        DateAdd(dd, -1*DatePart(dd, GetDate())+1, GetDate())   ) 

To remove the time quickly, you can use this Cast( Floor( Cast( GETDATE() AS FLOAT ) ) AS DATETIME )

So the second part would be (without time)

DateField >= Cast( Floor( Cast( (DateAdd(           mm,            -1,            DateAdd(dd, -1*DatePart(dd, GetDate())+1, GetDate())       )) AS FLOAT ) ) AS DATETIME ) 


回答3:

Very helpful page

declare @d datetime = '2011-04-03';  declare @startDate datetime; select @startDate =    CAST('01 '+ RIGHT(CONVERT(CHAR(11),DATEADD(MONTH,-1,@d),113),8) AS datetime); select @startDate; 


回答4:

Select Column1, Column2 From Table1 Where DateColumn = DATEADD(dd, - (DAY(DATEADD(mm, 1, GetDate())) - 1), DATEADD(mm, - 1, GetDate())) 

Edit: +1 to Russel Steen. I was posting mine before I knew he had posted.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!