我已经搜索了一下,以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',结束,' - 9分钟')||' - '|| strftime('%H:%M',结束)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表中的记录应该总结成人和成人_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
请指导我一个解决方案,谢谢你的时间。
答案 0 :(得分: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