Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在两列的日期之间选择日期?_Sql - Fatal编程技术网

Sql 如何在两列的日期之间选择日期?

Sql 如何在两列的日期之间选择日期?,sql,Sql,此选项不起作用: SELECT collaborators.fullname, learnings.state_id, orgs.name AS orgs_name, courses.name AS courses_name FROM learnings LEFT JOIN collaborators ON learnings.person_id = collaborators.id LEFT JOIN orgs ON collaborators.org_id = orgs.id LEFT JO

此选项不起作用:

SELECT collaborators.fullname, learnings.state_id, orgs.name AS orgs_name, courses.name AS courses_name
FROM learnings
LEFT JOIN collaborators ON learnings.person_id = collaborators.id
LEFT JOIN orgs ON collaborators.org_id = orgs.id
LEFT JOIN courses ON learnings.course_id = courses.id
WHERE collaborators.org_id = :org_id
AND learnings.start_date BETWEEN :date1 AND :date2
AND learnings.finish_date BETWEEN :date1 AND :date2
如果您在请求中留下以下内容之一:

AND learnings.start_date BETWEEN :date1 AND :date2

然后,选择工作。 请告诉我:
如何组合此查询中的两列
start\u date
finish\u date
,并将它们筛选为一列?

如果您希望两个时间段之间有任何重叠,则可以使用:

AND
learnings.start_date <= :date2 AND
learnings.finish_date >= :date1 
请解释“不工作”。样本数据、预期结果和逻辑的清晰解释将有所帮助。
AND
learnings.start_date <= :date2 AND
learnings.finish_date >= :date1 
AND
learnings.start_date >= :date1 AND
learnings.finish_date <= :date2