【发布时间】:2017-02-24 18:55:20
【问题描述】:
我有一个包含单独月份和年份字段的表 - 我需要查询此表以仅获取过去某个月份和年份之前的记录,这些记录会定期更改。 (为了清楚起见,我将日期硬编码为 2016 年 11 月)
DECLARE @Month INT
DECLARE @Year INT
SET @Month = 11
SET @Year = 2016
SELECT * FROM Items
WHERE [Month] <= @Month AND [Year] <= @Year
这没有得到我想要的结果,因为由于月份标准,2016 年 12 月之前的项目永远不会被提取。
我尝试通过连接月份和年份字段来解决此问题:
SET @YearMonth = 201611
SELECT * FROM Items
WHERE cast([Year] as nvarchar(4)) + cast([Month] as nvarchar(2)) <= @YearMonth
但这会在 2017 年返回项目。(不知道为什么?)
上述查询是否可以修复,或者是否有更好的方法来获得所需的结果?
【问题讨论】:
-
如何(年 * 100 + 月)
标签: sql-server