SQL to retrieve First/last day of a specific day

最近做的数据ETL经常需要计算给定日期的月份第一天或者是最后一天之类的问题。Sql server提供了类似DateAdd, Datepart 以及DateDiff 之类的函数供使用。为了方便以后在遇到类似的需求,在这里做个记录,方便自己查找。

 

First day of month:

select dateadd(day,1-DATEPART(day,getdate()),getdate())

 思路: 获取当前日期的天数,然后用现在的日期减去日期的天数加1便是月份的第一天了。

同样的思路:

Last day of month:

select dateadd(month, 1,dateadd(day,-DATEPART(day,getdate()),getdate()))

权且做个记录。

 

 

你可能感兴趣的:(sql)