簡體   English   中英

月份和年份的范圍查詢

[英]Range query from month and year

我有這樣一張桌子:

ID  month    year   content
1     4      2013    xxxxx
2     5      2013    yyyyy
3     6      2013    zzzzz
4     8      2014    fffff

我想根據年份和月份來查詢它。

我有這樣的查詢:

SELECT * FROM UPP 
WHERE ( month = '4' AND year = '2013' )
  AND ( month = '6' AND year = '2013' ) 

該查詢運行但不返回任何結果。 任何人都可以幫我修復此查詢嗎?

注意:月份和年份列是整數。

為什么不使用正確的數據類型?

失敗了:

SELECT * FROM UPP WHERE (year=2013) AND (month BETWEEN 4 AND 6);

這將是這個特定答案的最簡單途徑。

編輯

SQL小提琴供參考。

永遠不會有任何行,其中month = 4和month = 6這是您的查詢所要求的。 添加這樣的括號不會改變AND行為,因為你似乎想要它們所以你要求WHERE year=2013 AND month=4 AND month=6

您可以通過多種方式詢問您似乎想要的東西,例如:

WHERE (year=2013 AND month=4) OR (year=2013 AND month=6)

要么

WHERE year=2013 AND (month=4 OR month=6)

要么

WHERE year=2013 AND month IN (4,6)

如果你想要全范圍(整個季度,第4,5和6個月不僅僅是第4和第6個月,那么swasheck的建議可能是最明確的方式,但如果日期范圍跨越年份之間的界限,這將會下降。如果您需要進行完全靈活的遠程查詢(“截至2013年2月的六個月”等等),那么您可能需要重新考慮表結構以更輕松/有效地支持它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM