我有一张表事件
使用这个表我必须获取mysql中两个日期和两列之间的记录,请参阅下面我提到的表格式
eventId startDate dueDate
1 2018-01-15 2018-01-17
2 2018-01-25 2018-01-25
3 2018-01-11 2018-01-16
假设我想将2018-01-14
的记录提取到2018-01-16
意味着实际结果应该如下
My Expected answer
eventId
1
3
I tried like this but nothing is coming
SELECT eventId FROM events WHERE startDate <= '2018-01-30' AND DueDate <= '2018-01-30'
I am getting output
eventId
3
最佳答案
您可以在您需要的范围之间使用,例如:
SELECT eventId
FROM events
WHERE startDate BETWEEN '2018-01-14' AND '2018-01-16'
AND DueDate BETWEEN '2018-01-14' AND '2018-01-16'
或者您也可以为两列使用不同的范围
要获取 id = 3 的行,您需要 2018-01-11 而不是 2018-01-14 作为起始范围
SELECT eventId
FROM events
WHERE startDate BETWEEN '2018-01-11' AND '2018-01-16'
AND DueDate BETWEEN '2018-01-11' AND '2018-01-16'
或者您可以使用 OR 条件仅检查从 14 到 16 的两列之一
SELECT eventId
FROM events
WHERE startDate BETWEEN '2018-01-14' AND '2018-01-16'
OR DueDate BETWEEN '2018-01-14' AND '2018-01-16'
关于mysql - 两列之间无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48559433/