2017-08-10 97 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