获取两个日期列之间的行数

时间:2018-08-17 10:13:42

标签: mysql

我已经在数据库表下面添加了。在其中我有两列开始时间和结束时间

Record_id |     userid| parent_id| start time          | end time            | 
        1 |        53 |       10 | 2018-08-15 23:57:45 | 2018-08-15 23:57:55 |
        2 |        53 |       10 | 2018-08-15 23:58:03 | 2018-08-15 23:58:22 |
        3 |        53 |       10 | 2018-08-15 23:58:16 | 2018-08-15 23:59:05 |
        4 |        53 |       10 | 2018-08-15 23:58:24 | 2018-08-16 00:33:35 |
        5 |        53 |       10 | 2018-08-15 23:58:24 | 2018-08-15 23:58:29 |
        6 |        53 |       10 | 2018-08-15 23:58:31 | 2018-08-15 23:58:32 |
        7 |        53 |       10 | 2018-08-15 23:58:52 | 2018-08-15 23:59:00 |
        8 |        53 |       10 | 2018-08-15 23:59:16 | 2018-08-16 00:00:05 |
        9 |        53 |       10 | 2018-08-15 23:59:24 | 2018-08-15 23:59:32 |
        10|        53 |       10 | 2018-08-15 23:59:27 | 2018-08-16 00:00:03 |
        11|        53 |       10 | 2018-08-15 23:59:43 | 2018-08-16 00:21:38 |
    +-----+-----------+----------+---------------------+---------------------+

输出:

Date                | Count | user_id | parent_id | Record 
2018-08-15 23:58:00 | 1     | 53      | 0         |   1
2018-08-15 23:58:00 | 1     | 0       | 10        |   1
2018-08-15 23:59:00 | 6     | 53      | 0         |   2,3,4,5,6,7  
2018-08-15 23:59:00 | 6     | 0       | 10        |   2,3,4,5,6,7
2018-08-16 00:00:00 | 6     | 53      | 0         |   3,4,8,9,10,11
2018-08-16 00:00:00 | 6     | 0       | 10        |   3,4,8,9,10,11
2018-08-16 00:01:00 | 4     | 53      | 0         |   4,8,10,11
2018-08-16 00:01:00 | 4     | 0       | 10        |   4,8,10,11

结果说明:

第一列(日期):DateTime, 第二列(计数):特定日期时间表中有多少条记录。

在这里我们可以看到时间:2018-08-15 23:58:00仅record_id = 1可用。意味着record_id = 1的start_time必须大于2018-08-15 23:57:00,并且end_time必须小于等于2018-08-15 23:58:00。

假设:Record_id = 4,其开始时间为2018-08-15 23:58:24,结束时间为2018-08-16 00:33:35。 因此,将从2018年8月15日23:59:00(开始时间大于2018年8月15日23:58:00)到2018年8月16日00:34:00(结束时间较短)计算此记录等于或等于2018-08-16 00:34:00)。

注意:

  1. 如果开始时间为2018-08-15 12:12:01至end_time <= 2018-08-15 12:13:00,则记录将被考虑到2018-08-15 12:13:00。所以这样 不会将记录计算为多个输出
  2. 针对特定的user_id和parent_id的特定分钟的预期计数
  3. 在“输出”中,仅使用最后一列(记录)以更好地解释/理解。

0 个答案:

没有答案