2017-08-09 92 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)))