0

我已经搜索了一些以 10 分钟间隔获取最后 1 小时的详细信息,如下所示

如果假设当前时间是 10:30,我期望输出如下,请建议我解决方案。

  TIME_SLOT

09:31 - 09:40
09:41 - 09:50
09:51 - 10:00
10:01 - 10:10
10:11 - 10:20
10:21 - 10:30

我有格式为 (CUSTOMER) 的表格(图 1.1)

M_CODE  H_CODE END_TIME_OF_SERVICE ADULT ADULT_F
TKLK    LONE     09:19:16           1     2
TKLK    LONE     09:22:11           4     6
TKLK    LONE     09:32:46           2     7
TKLK    LONE     09:32:46           4     9
TKLK    LONE     10:09:36           1     3

如果我运行( SELECT strftime('%H:%M', end, '-9 minutes') || ' - ' || strftime('%H:%M', end ) AS time_slot FROM end_times )它给出正确的输出为(图 - 1.2)

09:19 - 09:28
09:29 - 09:38
09:39 - 09:48
09:49 - 09:58
09:59 - 10:08
10:09 - 10:18 

你能指导如何映射这两个表,假设CUSTOMER表中的记录应该总结为adult和adult_f列(图1.2到图1.1)

   ADULT    ADULT_F    TIME_SLOT
      5        8      09:19 - 09:28
      6       16      09:29 - 09:38
      0        0      09:39 - 09:48
      0        0      09:49 - 09:58
      0        0      09:59 - 10:08
      1        3      10:09 - 10:18 

请指导我一个解决方案,感谢您的时间。

4

1 回答 1

2

SQL 查询旨在处理存储在表中的数据。如果要创建这些日期,将这些值插入临时表可能是最简单的。

或者,您可以一个一个地构造这些值。首先定义当前时间的偏移量:

CREATE VIEW intervals AS
SELECT -50 AS offset UNION ALL
SELECT -40           UNION ALL
SELECT -30           UNION ALL
SELECT -20           UNION ALL
SELECT -10           UNION ALL
SELECT   0

然后你可以像这样构造时隙端点:

CREATE VIEW end_times AS
SELECT datetime('now', offset || ' minutes') AS end
FROM intervals

然后像这样格式化时隙:

SELECT strftime('%H:%M', end, '-10 minutes') || ' - ' ||
       strftime('%H:%M', end               ) AS time_slot
FROM end_times
于 2012-10-08T07:07:00.327 回答