我有一个星期编号,比如32,我需要从本周开始获得本月剩余的天数。我该怎么做SQL Server?
答案 0 :(得分:0)
尝试DATEPART ( datepart , date )
和datepart
可以是工作日,日,月或类似的事情..
访问此https://technet.microsoft.com/en-us/library/ms174420(v=sql.105).aspx
答案 1 :(得分:0)
首先,您需要找到有问题的一周中的第一天。为了做到这一点,我们需要知道你想要的年份。在下面的示例中,我使用当前年份。完成此操作后,我们就可以使用DATEDIFF()
查找从您传入的周数开始到月末的剩余天数。
DECLARE @WeekNo int= 32
DECLARE @Year int=datepart(year,getdate())
SELECT
FirstDayOfWeek = DATEADD(wk,@WeekNo-1,DATEADD(yy,@Year-1900,0))
,LastDayOfMonth = DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, DATEADD(wk,@WeekNo-1,DATEADD(yy,@Year-1900,0))) + 1, 0))
,DaysLeftInMonth = DATEDIFF(day,DATEADD(wk,@WeekNo-1,DATEADD(yy,@Year-1900,0)),DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, DATEADD(wk,@WeekNo-1,DATEADD(yy,@Year-1900,0))) + 1, 0)))