我尝试创建一个查询来选择适合当前年月范围的记录。这是我的数据库表:
id name date_start date_end
======================================
1 John 2016-05-20 2018-01-01
2 Peter 2017-02-02 2017-05-10
3 Mike 2015-02-02 2017-02-06
和我的查询:
SELECT * FROM users
WHERE YEAR(date_start) = 2017
AND MONTH(date_start) = 01
OR YEAR(date_end) = 2017
AND MONTH(date_end) = 01
所以基本上我需要选择当前年/月的所有用户,在这种情况下,2017在开始/结束列范围内。
在上述查询中,只应选择John和Mike记录。
答案 0 :(得分:6)
我想您只是想知道哪些用户的日期2017-01-01
在date_start
和date_end
定义的范围内。如果是这样,那么以下查询应该有效:
SELECT *
FROM users
WHERE date_start <= '2017-01-01' AND date_end >= '2017-01-01'
在这里演示: