繁体   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