簡體   English   中英

PHP的SQL查詢選擇月份和年份之間

[英]php sql query select between month and year

我想在月份和年份之間的條件中選擇SQL query 在我的數據庫中,字段名稱是“月”和“年”,用於商店產生“月和年”的輸入。 現在我想在2015年12月到2016年8月之間進行搜索產生輸入。這是我的sql

SELECT * FROM tbl_produce p WHERE p.status =0 AND ((p.months >='12' 
AND p.years>='2015') AND (p.months <='8' AND p.years<='2016)) ;

但是結果返回NULL ,我知道查詢不正確,但是如何更正呢?

為什么不將日期列設計為日期?

如果要保留當前的設計,請嘗試以下操作:

SELECT * 
FROM tbl_produce
WHERE status = 0 
AND concat(years, if(months > 9, months, concat('0', months))) 
  BETWEEN '201512' AND '201608'

要么

SELECT * 
FROM tbl_produce
WHERE status = 0 
AND (
  (years = 2015 AND months = 12) 
  OR 
  (years = 2016 AND months < 9)
)

您的SQL查詢正在尋找p.months等於12和8以及p.years等於2015和2016的結果。

為了獲得您想要的結果,請將兩組括號之間的AND替換為OR,如下所示:

SELECT * FROM tbl_produce p WHERE p.status =0 AND ((p.months >='12' AND p.years = '2015') OR (p.months <='8' AND p.years = '2016));

如果可以訪問您的表結構,則可以自己運行測試以進行確認,但是我相信這對於您要查找的結果來說是正確的語法。

暫無
暫無

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

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