-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 つのことは、月の値が 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 に答える