从日期范围和参数填写表格

时间:2018-06-11 14:26:05

标签: mysql sql stored-procedures

我有一张包含不同程序的表格。

当程序配置发生变化时,使用新参数将事件添加到我的数据库中。

它有几个参数:事件的日期时间,活动时每周的天数,每天的强度,开始时间和结束时间。

我想使用这些数据来创建图表,但首先我需要更改数据,使其可用,并且我将使用的图表库可以理解。

我想要的是是创建一个表格,我将每天我的不同程序及其参数。

所需输出的示例:

day        - program_code - intensity - start - end
01-01-2018 - 39           - 2         - 10    - 11
01-01-2018 - 40           - 4         - 14    - 15
02-01-2018 - 39           - 2         - 10    - 11
02-01-2018 - 40           - 4         - 14    - 15
The data stay the same until an event of configuration appears and changes 
the parameters, for example program 39 changes(40 stays the same) : 
03-01-2018 - 39           - 8         - 9     - 12
03-01-2018 - 40           - 4         - 14    - 15

所以我们每天都有积极的节目,包括他们的强度以及他们的开始和结束时间。

(我把时间花在了一小时,但你看到了这个想法)。

当然这将适用:

  • 在参数
  • 中指定的天数
  • 当新事件显示相同的程序代码时,它将更新

我正在考虑创建一个带有临时表的存储过程来执行此操作,但我真的不知道该怎么做

注意: day参数的工作方式如下:

1 = Sunday  
2 = Monday
3 = Tuesday  
...
7 = Saturday  
8 = All week  
9 = Weekend

代码:

CREATE TABLE events 
( `program_code` int(11) NOT NULL,
`program_datetime` datetime NOT NULL,
`days` varchar(40) DEFAULT NULL,
`intensity` varchar(40) DEFAULT NULL, 
`start` varchar(40) DEFAULT NULL, 
`end` varchar(40) DEFAULT NULL);
INSERT INTO events (`program_code`, `program_datetime`, `days`, `intensity`, `start`, `end`) 
VALUES 
(40, '2018-03-05 13:24:31','8', '1', '75600', '82800'),
(39, '2018-03-05 13:24:15','8', '2', '57600', '75600'),
(40, '2018-03-02 04:34:51','9', '2', '75600', '82800'),
(39, '2018-03-02 04:34:17','1', '3', '57600', '75600'),
(37, '2018-02-18 14:31:25', '2', '2', '25200', '39600'),
(39, '2018-01-23 13:02:00','7', '4', '64800', '75600');

DB FIDDLE

0 个答案:

没有答案