当前位置: 首页 > 面试题库 >

显示MySQL中日期之间的间隔

徐学潞
2023-03-14
问题内容

如何显示mysql中的剩余/互补日期?

例如,在我的表中有2列,其中有一个快照
from_date>14-06-2014 and to_date<01-07-2014

将给出以下输出:

From date   || To_date
15-06-2014  || 20-06-2014
23-06-2014  || 27-06-2014 
29-06-2014  || 30-06-2014

我希望能够显示我们之间有一个空白并且没有任何记录的日期,如下所示:

2 //21-06-2014 - 23-06-2014
1 //28-06-2014

这可能吗?谢谢


问题答案:

遵循以下原则:

drop table if exists dates;
create table dates (d_from date, d_to date);
insert into dates values 
('2014-06-15'  , '2014-06-20'),
('2014-06-23'  , '2014-06-27' ),
('2014-06-29'  , '2014-06-30' );

select low.d_to, high.d_from, to_days(high.d_from) - to_days(low.d_to) - 1 as gap

from dates low, dates high
where high.d_from = (select min(d_from) from dates where d_from > low.d_to)
;

这意味着:在相邻的结束/开始日期将表与其自身连接,然后计算差异。

+------------+------------+------+
| d_to       | d_from     | gap  |
+------------+------------+------+
| 2014-06-20 | 2014-06-23 |    2 |
| 2014-06-27 | 2014-06-29 |    1 |
+------------+------------+------+


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 从日期范围生成天数 (29个答案) 7年前关闭。 我想显示a 和MySQL中的日期之间的所有日期。 例如,具有和字段的表中的数据为: 日期是和 日期, 我想要的结果是: 如何仅使用MySQL查询来实现此目的(而不必使用存储过程,因为我对此并不熟悉)? 编辑: 尽管我仍然没有完全得到想要的结果,但是这里的答案很有帮助。在此示例中,它仅成功运行,但不输出任何

  • 问题内容: 已修正-这是我现在所拥有的 -用ASP编写 原始问题: 简单的问题,但由于某种原因,我似乎无法正常工作。 我有一个搜索框,旁边是日期范围选择菜单,因此用户可以搜索最近1个月,6个月或12个月内的照片。 我所拥有的没有错误,但是当它应该执行时它不会产生任何结果,就是这样: SQL输出产生以下结果: 数据库的’dateCreated’字段设置为(Date INDEX)。 谁能看到哪里出了问

  • 问题内容: 我正在尝试显示时间戳记- 我尝试了不同的查询方式,并且还尝试将用作值。似乎没有任何作用。我的目的是让该应用显示以前的素数和它们被发现的时间。该应用程序的初衷是让用户能够关闭/杀死该应用程序,并在重新启动该应用程序时从上次找到的素数恢复计数。如果您有任何暗示,我也将不胜感激。 这是PrimeDBManager类 头等舱 最后是MainActivity类 问题答案: 好的,既然您上传了项目

  • 问题内容: 全部, 我有一个带有称为时间戳记的列的MYSQL表。它的数据类型为“ 10/1/2009 3:25:08 PM”,“ 10/1/2009 3:30:05 PM”,“ 10/4/2009 3:40:01 PM”,等等.. 我想编写一个SQL查询来选择在两个日期之间出现的时间戳字段中的所有值。 userInput日期将没有时间部分。您能为此建议正确的MySQL查询语法吗?谢谢 问题答案:

  • 问题内容: 我想计算两个日期时间字段之间的月份数。 有没有比获得unix时间戳和除以2592 000(秒)并在MySQL中四舍五入更好的方法了? 问题答案: 该DATEDIFF功能可以给你的天数两个日期之间。由于…您如何定义一个月,哪个更准确?(28、29、30或31天?)

  • 问题内容: 如何以格式计算两个日期之间的差并以秒或毫秒为单位获取结果? 问题答案: 因此,您可以为您的目的使用。