2017-08-09 89 views
-1

我有一个星期的数字,如32,我需要从本周开始的月份中获得剩余的天数。我如何在SQL Server中做到这一点?如何根据周数找到一个月内的剩余天数?

+2

'@number_of_days = 7'? – GSerg

+1

我需要获取本周的月份。然后我需要知道每个月的32周剩余天数。 – user3510330

+1

[从T-SQL中的一周数中获取日期]可能的重复(https://stackoverflow.com/questions/607817/get-dates-from-a-week-number-in-t-sql) – GSerg

回答

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