php - Mysql 查询用于计算具有特定天数差异的行数

标签 php mysql datetime

要制作折线图。我想查询相差5天的计数。 假设我有以下行:

 booking_date
 2015-02-1
 2015-02-3
 2015-02-5
 2015-02-6
 2015-02-6
 2015-02-9
 2015-02-10
 2015-02-15
 2015-02-17
 2015-02-23
 2015-02-28

上表列中包含日期。现在我怎样才能进行 mysql 查询,以便它可以返回相差 5 天的结果,例如:

 1 => 3  // count of date between 2015-02-1 & 2015-02-05 is 3
 2 => 4  // count of date between 2015-02-06 & 2015-02-10 is 4
 3 => 1  // count of date between 2015-02-11 & 2015-02-15 is 1
 4 => 1  // count of date between 2015-02-16 & 2015-02-20 is 1
 5 => 1  // count of date between 2015-02-21 & 2015-02-25 is 1
 6 => 1  // count of date between 2015-02-26 & 2015-02-30 is 1

是否可以像上面那样直接查询。我不太擅长mysql。但可以很好地执行 php。

最佳答案

您可以执行以下操作以获取同一查询中的所有内容。

首先获取您想要在 5 天内开始分组的日期的 unix 时间戳。在您的示例中,这将是 2015-02-01 -> 1422748800

那么查询将如下:

SELECT COUNT(*), FLOOR((UNIX_TIMESTAMP(booking_date) - 1422748800)/ (60*60*24*5)) as FiveDayPackNumber from tbl GROUP BY FLOOR((UNIX_TIMESTAMP(booking_date) - 1422748800)/ (60*60*24*5))

尚未对其进行测试,因此可能需要进行一些调整,但您可以理解:它将按照自初始日期以来经过的 5 天包数量对它们进行分组,从 0 开始。

关于php - Mysql 查询用于计算具有特定天数差异的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28536503/

相关文章:

php - 如何在 Joomla 中完成的网站中添加背景音乐?

java - 如果使用 ruby​​ on rails、python 或 java 可以做得更好,为什么还要使用 php 框架进行编程?

MySQL 查询在同一个表上有 2 个查询以匹配完全相同的值

c# - 如何读取日期文本文件并将它们转换为可以在 C# 中排序的数组?

php - 将类、方法和参数传递给 WordPress 函数

php - 如何确定商店是开门还是关门 - 处理时间?

java - 并发请求事务以防止不必要的持久化

java - 根据用户的本地时区在特定时间执行日常操作

JavaScript 从时间戳开始计数

php - 将 PHP 字符串读取为整数