我需要编写一个返回 No的查询。一个月的一天。 请理解我无法使用DATE,任何有DATE的查询都无效。
我创建了一个带有int值的参数。就像1月是1,2月是2等。
从值1或2,我想得到的天数,如1的天数应为31天,2应为28或29.
我正在使用Ms sql-server-2008。
需要帮助。
问候,
答案 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);
- 或 -
如果您真的不想使用任何计算,只需查询,请将这些值存储在表中,并使用输入值查询该表。