-3

嗨,这似乎是一个微不足道的问题,但不知何故,我很简单 where 查询

where ([Year] >= 2012 and [Month] >= 12) and ([Year] <= 2013 and [Month] < 1)

并且此查询排除任何行,因为存在条件月 > 12 和月 < 1,所以如何做到这一点,这将返回 2012.12 的行,以便仅在年为 2012 时检查月 >=12 并仅检查月 < 1 2013 年的那些行?

我应该提一下,我的 sql 表只有没有 dateTime 字段

[Year] [int] NOT NULL,
[Month] [int] NOT NULL,
[Value] [float] NOT NULL,
4

2 回答 2

0

there fore i want like two condition to check, if year 2012 and month >= 12 and if year 2013 and month <2 should return two rows 2012.12 and 2013.1

@kosnkov:我在这里猜测您是在问如何查找日期在从开始日期开始的指定月数内的行。你熟悉 DateDiff() 函数吗?它需要一个 DateTime 列。

http://msdn.microsoft.com/en-us/library/ms189794%28v=sql.90%29.aspx

于 2013-05-12T12:12:11.977 回答
-2

根据您的要求,您需要检查条件or如下 -

关于 [月] 的一件事,该月的值将从 1 到 12。它永远不会小于 1,也永远不会大于 12。因此,为了实现您想要的输出,您可以使用以下查询 -

where ([Year] >= 2012 and [Month] = 12) or ([Year] < 2013 and [Month] < 2)

希望这能解决您的问题。

为了获得您评论的输出,我们可以连接年份和月份部分,并可以检查如下 -

where ([Year]*100+[Month] >= 201212 and [Year]*100+[month] < 201302)

此条件将仅提供 2012 年和第 12 个月或 2013 年和月份小于 2 的记录

于 2013-05-12T11:59:40.147 回答