mysql - 在 'between' 子句中混合两列

标签 mysql sql between

我有一个这样的表:

Table

我想获取 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/

相关文章:

mysql - 如何获得部门明智的最高薪水以及拥有它的员工姓名?

sql - 在两个以上的表上使用内部联接删除查询

mysql - codeigniter 左连接没有换行符

带有多字段主键的MySql问题

php - 表 MYSQL 中的重复项

sql - 如何在表格中输入带有 ' 的文本?

mysql - 排除相同的值和特定的规则集查询

php - 如何在我的表中获取最接近当前日期的行?

sql-server - sql : BETWEEN v1 AND v2

java - 将 Android 应用程序连接到 phpmyadmin - 无法连接错误