sql - How to get First and Last for every month -
how add first 1 10 dates month , add last 20 30 days of month.
declare @today date = '2016-11-05' select convert(varchar(5),datepart (dw, @today)-1 )+' days of '+ left(datename(month,@today),3) comments i'm getting
comments 6 days of nov how :
comments first 6 days of nov if give date '2016-11-24'
need output
comments last 4 days of nov suggest me way proceed
use case statement:
select (case when day(@today) <= 10 'first ' when day(@today) >= 20 'last ' else '' end) + convert(varchar(5), datepart(dw, @today)-1 ) + ' days of ' + left(datename(month, @today), 3) comments edit:
oh, see original query not right. want more this:
select (case when day(@today) <= 10 'first ' + datename(day, @today) + ' days of ' + left(datename(month, @today), 3) when day(@today) >= 20 , month(@today) in (1, 3, 5, 7, 8, 10, 12) 'last ' + cast(31 - day(@today) varchar(255)) when day(@today) >= 20 , month(@today) in (4, 6, 9, 11) 'last ' + cast(30 - day(@today) varchar(255)) when day(@today) >= 20 , month(@today) in (2) , year(@today) % 4 = 0 'last ' + cast(29 - day(@today) varchar(255)) when day(@today) >= 20 , month(@today) in (2) , year(@today) % 4 <> 0 'last ' + cast(29 - day(@today) varchar(255)) else cast(day(@today) varchar(255)) end) + ' days of ' + left(datename(month, @today), 3) comments
Comments
Post a Comment