4

テーブルにこれらのフィールドがあります

month
year

これに基づいてクエリを作成したかった

month BETWEEN 4 AND 12 AND year = 2008

また

month BETWEEN 1 AND 10 AND year is greater than 2008 but equal or less than 2009

これを試しましたが、正しいクエリ結果が得られません。

"WHERE month BETWEEN 4 AND 12 AND year = 2008 OR month BETWEEN 1 AND 10 AND year 2008<=2009";

注:ここでの数値は可変です。簡単に理解できるように実際の数値を示しました:)何か助けはありますか?

year =(2008 <= 2009)は、年が2008より大きく、2009以下でなければならないことを意味します。

4

5 に答える 5

10

これを試して:

where (year*100)+month between  200804 and  200910

これにより、すべてのシナリオが処理されます。年の違いが複数ある場合でも

于 2012-09-03T08:15:45.843 に答える
5
"WHERE ((month BETWEEN 4 AND 12) AND year = 2008) OR ((month BETWEEN 1 AND 10) AND (year 2008 OR 2009))";

hope it help :)

于 2012-09-03T08:22:01.777 に答える
2

これを行う必要があります。

WHERE (year = 2008 AND month BETWEEN 4 AND 12) 
       OR
      (year > ? AND year <= 2009 AND 
       month BETWEEN 1 AND 10)

これはどういう意味ですか?greater than 2008 but equal or less than 2009. に等しいということ2009ですか?

于 2012-09-03T08:14:03.353 に答える
1

MySQLの日付関数を見たことがありますか?このようにすることは、靴で釘を打ち込もうとするようなものです。

于 2012-09-03T08:13:27.653 に答える
1

これは次のように機能するはずです。

WHERE ((month BETWEEN 4 AND 12) AND year = 2008) OR ((month BETWEEN 1 AND 10) AND year = 2009)
于 2012-09-03T08:13:43.977 に答える