[英]WHERE Statement to find all records in a month?
假设我要查找六月中涉及的所有记录!
-----------------------------------------------------------
CaseID StartDate EndDate
1 2016-05-31 2016-06-01
2 2016-02-29 2016-06-20
3 2016-03-21 2016-06-01
4 2016-05-05 2016-06-01
5 2016-05-20 2016-07-01
6 2016-05-12 2016-12-31
SELECT CaseID, StartDate, EndDate
FROM ServiceCase
WHERE((StartDate > '2016-05-31' and StartDate < '2016-07-01') or (EndDate >
'2016-05-31' and EndDate < '2016-07-01'))
但是我无法搜索CaseID 6的记录,逻辑是否错误?
您似乎想选择6月份正在处理的所有案件。 如果是这样,那么以下是四种可能的情况:
或者换句话说,情况必须
因此,查询基本上看起来像这样:
SELECT CaseID, StartDate, EndDate
FROM ServiceCase
WHERE
StartDate < '2016-07-01' AND EndDate > '2016-05-31'
输出: SQL提琴
尝试如下所述:
SELECT CaseID, StartDate, EndDate
FROM ServiceCase
WHERE(StartDate < '2016-07-01' and EndDate > '2016-05-31')
您可以尝试使用MySQL MONTH()函数; 示例代码为6月的波纹管
SELECT CaseID, StartDate, EndDate
FROM ServiceCase
WHERE MONTH(StartDate) = 6
OR MONTH(EndDate) = 6
OR (MONTH(StartDate) < 6 AND MONTH(EndDate) > 6)
注意:这只是比较月份部分而不考虑性能的一种选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.