[英]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.