mysql - php sql查询在月份和年份之间选择

标签 mysql sql-server postgresql

我想在月份和年份之间的where条件中选择SQL查询。在我的数据库中,有字段名称月份和年份,用于商店生产月份和年份的输入。现在我想要搜索产生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)
)

关于mysql - php sql查询在月份和年份之间选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39262253/

相关文章:

postgresql - 用于排序和连接的 Postgres 专有索引

PHP - 将关联数组输出到 HTML <divs with labels/headings

php - 深度加入Cakephp

sql - 连接列而不包括具有空值的列?

postgresql - 来自 pgadmin3 的 pg_restore 错误 - Postgresql

postgresql - 具有已删除属性的历史表的累积计数

mysql - 用于 SSH 连接的 Spring/Hibernate MySQL 驱动程序设置

linux - bash 中的 mysql 带变量

sql - 喜欢通过改变是需要的

sql-server - 在 sqoop-export 中遇到一些问题?