2017-08-10 86 views
-2

我需要編寫一個查詢,返回一個月的天數請理解我無法使用DATE,並且任何具有DATE的查詢都無法使用。一個月的總天數

我已經創建了一個int值的參數。在1月爲1,二月是2等

從值1或2,我希望得到的天數一樣的1天數應爲31和2應該是28或29

我正在使用Ms sql-server-2008。

幫助是必需的。

Regards,

+0

看看這個鏈接:https://stackoverflow.com/questions/691022/how-to-determine-the-number-of-days-in-a-month-in-sql-server –

+2

可能重複的[如何確定一個月在SQL Server中的天數?](https://stackoverflow.com/questions/691022/how-to-determine-the-number-of-days-in-a-month-in- sql-server) – deblocker

+0

看起來我們找到了同樣的東西! –

回答

1

因此,您始終可以使用日期部件建立日期。您可能想要驗證輸入並將此邏輯轉換爲您的需要。

DECLARE @year SMALLINT = 2017; 
DECLARE @month TINYINT = 2; 

DECLARE @dateFrom DATE = CONVERT(DATE, 
     CONVERT(CHAR(4), @year) + '-' 
    + RIGHT('00' + CONVERT(VARCHAR(2), @month), 2) 
    + '-01' 
); 

DECLARE @dateTo DATE = DATEADD(MONTH, 1, @dateFrom); 

SELECT DATEDIFF(DAY, @dateFrom, @dateTo); 

- 或 -

如果你真的熱衷於不使用任何計算,只是一個查詢,表中的這些值存儲和使用的輸入值查詢該表。

+0

非常感謝Pred。該服務器的目的。你節省了我很多時間。 – JamshaidRiaz