Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
MySQL查询选择值在日期范围内的所有行_Mysql_Date_Range - Fatal编程技术网

MySQL查询选择值在日期范围内的所有行

MySQL查询选择值在日期范围内的所有行,mysql,date,range,Mysql,Date,Range,我有以下MySQL查询: SELECT s.student_socialnr, s.student_lastname, s.student_firstname, cs.city_name, scp.cpl_startdate, scp.cpl_enddate, scp.cpl_invoice, cu.customer_name, scp.cpl_coursename FROM students s INNER JOIN studentcourseplan scp ON scp

我有以下MySQL查询:

SELECT 
  s.student_socialnr, s.student_lastname, s.student_firstname,
  cs.city_name,
  scp.cpl_startdate, scp.cpl_enddate, scp.cpl_invoice,
  cu.customer_name, scp.cpl_coursename
FROM students s
 INNER JOIN studentcourseplan scp ON scp.student_id = s.student_id
 INNER JOIN cityselections cs ON cs.city_id = s.student_city_id
 INNER JOIN customers cu ON cu.customer_id = s.student_customer_id
这将输出如下内容:

+------------------+------------------+------------------+-----------+---------------+--------------+-------------+---------------+----------------+
| student_socialnr | student_lastname | student_firstname| city_name | cpl_startdate | cpl_enddate  | cpl_invoice | customer_name | cpl_coursename |
+------------------+------------------+------------------+-----------+---------------+--------------+-------------+---------------+----------------+
| 000000-0000      | Doe              | John             | Dallas    | 2012-06-01    | 2012-06-30   | 1337        | The customer  | The course     |
+------------------+------------------+------------------+-----------+---------------+--------------+-------------+---------------+----------------+
| 000000-0000      | Johnsson         | Derp             | Texas     | 2012-02-01    | 2012-07-28   | 5000        | The customer  | The course     |
+------------------+------------------+------------------+-----------+---------------+--------------+-------------+---------------+----------------+
| 000000-0000      | Derpina          | Lisa             | New York  | 2013-01-01    | 2013-04-01   | 2001        | The customer  | The course     |
+------------------+------------------+------------------+-----------+---------------+--------------+-------------+---------------+----------------+
我没有两个问题。我希望能够在
cpl\u startdate
cpl\u enddate
字段上设置过滤器。因此,例如,如果用户设置过滤器
cpl_startdate='2012-01-01'
cpl_enddate='2012-12-31'
,则应输出日期在该范围内的所有行。因此,使用上面的示例,它应该只输出前两行,因为它们在选定的日期范围内

我试过了

.. WHERE scp.cpl_startdate <= '2012-01-01' AND scp.cpl_enddate >= '2012-12-31'
。。其中scp.cpl_startdate='2012-12-31'
。。没有运气。我可以在之间使用MySQL语法吗?


另外,是否可以计算两个日期范围之间的天数?我想输出跨度之间天数的整数。不一定在同一查询中。

切换比较符号:

.. WHERE scp.cpl_startdate >= '2012-01-01' AND scp.cpl_enddate <= '2012-12-31'
DATEDIFF(expr1,expr2)返回expr1-expr2之间的日期差。请参阅MySQL中的更多内容

DATEDIFF(scp.cpl_enddate, scp.cpl_startdate) AS DaysDifference