Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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_Sql_Between - Fatal编程技术网

Mysql介于两者之间

Mysql介于两者之间,mysql,sql,between,Mysql,Sql,Between,如何在两个日期之间选择两个日期之间的数据?例如: start_date - end_date -- title 2014-01-28 2014-02-03 test 2014-02-01 2014-02-15 ests 2014-02-28 2014-03-03 sets 2014-03-01 2014-03-10 sste 问题是,我想选择2014-02-02和2014-02之间的数据 2014年02月28日前三名被选中是因为前三名 数据包含在第2个月 我试过这个,但不管用 SELE

如何在两个日期之间选择两个日期之间的数据?例如:

start_date - end_date -- title

2014-01-28 2014-02-03 test

2014-02-01 2014-02-15 ests

2014-02-28 2014-03-03 sets

2014-03-01 2014-03-10 sste
问题是,我想选择2014-02-02和2014-02之间的数据 2014年02月28日前三名被选中是因为前三名 数据包含在第2个月

我试过这个,但不管用

SELECT title FROM my_tables WHERE start_date BETWEEN 2014-02-02 AND 2014-02-28

它是如何工作的?

两个周期重叠,一个周期开始于另一个周期之前,另一个周期结束于第一个周期之后。以下是正确的逻辑:

SELECT title
FROM my_tables
WHERE start_date <= '2014-02-28' and
      end_date >= '2014-02-02';
选择标题
从我的桌子上
其中开始日期='2014-02-02';
请注意,日期常量需要在单引号中


是一个SQL小提琴,显示它正在工作。

将单引号添加到日期常量

SELECT title FROM my_tables WHERE start_date BETWEEN '2014-02-02' AND '2014-02-28'

当开始或结束在另一个日期范围内时,该日期范围与另一个日期范围重叠:

given range: |----| range 1 |----| overlaps with given range, because end_date is in that range range 2 |----| overlaps with given range, because start_date is in that range range 3 |----| does not overlap with given range, because both start and end date are not in that range
你试过了吗?我试过了,但不起作用,没有显示数据:(@MuhammadZaidTaufiq…起作用了。检查答案中的SQL Fiddle。我不理解你的Fiddle中的模式,我认为它与我上面的表不一样嗯,对不起,兄弟,这是我的错:)起作用了!谢谢对不起,我忘了,但它仍然不起作用,还有其他建议吗?这不是错误,但它不是我想要的输出,我想要前三个数据作为输出开始日期的数据类型是什么?数据类型是日期!但是如果我使用它,输出是重复的,如何使用?我的表中必须有重复的标题。当然,您可以使用select distinct title from来选择不同的标题…我只是注意到应该使用括号。我会更新我的答案。
SELECT title FROM my_tables 
WHERE (start_date BETWEEN '2014-02-02' AND '2014-02-28')
OR (end_date BETWEEN '2014-02-02' AND '2014-02-28');