我得到了这个旧系统,我必须在我工作的地方进行维护,他们让我在系统上添加一个日期过滤器,但是日期字段不仅仅是一个字段,之前的开发人员已经将它拆分成 < em>三个,就像这样 "year_id", "month_id", "day_id"
现在我必须在两个日期之间(更具体地说是在 月 和 年 之间)做一个 SELECT,我就这样尝试了:
select
* from `table`
where
(
(`year_id` >= 2018 and `month_id` >= 10)
or
(`year_id` <= 2019 and `month_id` <= 3)
)
当我看到结果时,我意识到该查询还返回了 2018 年 1 月、2 月和 3 月 的结果,而它不应该这样做。 我如何应用这些过滤器?
最佳答案
您应该做的最理想的事情是添加一个新列
select
*,STR_TO_DATE(Concat(year_id,month_id),'%Y%m') as 'YearMonth' from `table`;
这将创建一个新列 YearMonth
然后您可以使用您的过滤器
select * from (
select
*,STR_TO_DATE(Concat(year_id,month_id),'%Y%m') as 'YearMonth' from `table`
) z where (YearMonth between '201810' and '201903')
关于php - SQL 问题 - 在两个日期之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253639/