我有一个这样的表:
我想获取 2014 年 12 月至 2015 年 2 月之间的数据,即我应该在 Between 子句中使用 2 列:
在(月 = 12 且年 = 2014 年)和(月 = 1 且年 = 2015 年)之间
我认为这是不可能的。 还有其他方法可以做到这一点吗?真的需要你的建议。
最佳答案
我的建议是,如果可能的话,实际更改表格以使用真实日期。如果它们是不完整的日期,您可以强制它们位于时间段的开始处,例如 yyyy-mm-01
。
然后,您可以在查询中轻松使用 Between
以及各种奇妙的日期操作函数。
但是,如果这不是一个选项,并且您的数据是正确的,即表中仅存在有效数据,则您可以使用类似以下内容的内容:
select * from mytable
where (year = 2014 and month >= 12)
or (year = 2015 and month <= 2)
这可以概括为查询 M1/Y1 和 M2/Y2 之间的日期(包括 M1/Y1 和 M2/Y2),例如:
select * from mytable
where (year = Y1 and month >= M1)
or (year > Y1 and year < Y2)
or (year = Y2 and month <= M2)
关于mysql - 在 'between' 子句中混合两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27897476/