如何根据周数查找一个月的剩余天数?

时间:2017-08-09 08:37:21

标签: sql sql-server sql-server-2008-r2

我有一个星期编号,比如32,我需要从本周开始获得本月剩余的天数。我该怎么做SQL Server?

2 个答案:

答案 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)))