在mySQL中将频率表转换为时间表视图
我有一个mySQL表,其中包含以下内容:在mySQL中将频率表转换为时间表视图,mysql,schedule,Mysql,Schedule,我有一个mySQL表,其中包含以下内容: ID START FREQUENCY REPETITIONS RESOURCE -------------------------------------------------- 1 24/02/2014 daily 5 10 2 24/02/2014 yearly 2 11 是否有任何简单的方法将其转换为视图,例如: ID DATE
ID START FREQUENCY REPETITIONS RESOURCE
--------------------------------------------------
1 24/02/2014 daily 5 10
2 24/02/2014 yearly 2 11
是否有任何简单的方法将其转换为视图,例如:
ID DATE RESOURCE
-------------------------
1 24/02/2014 10
1 25/02/2014 10
1 26/02/2014 10
1 27/02/2014 10
1 28/02/2014 10
2 24/02/2014 11
2 24/02/2015 11
谢谢如果重复次数有限,可以创建如下数字表:
CREATE TABLE numbers (
num INT,
i INT
);
INSERT INTO numbers VALUES
(1,1),
(2,1),
(2,2),
(3,1),
(3,2),
(3,3),
(4,1),
(4,2),
(4,3),
(4,4),
...
然后可以使用连接:
SELECT
ID,
`START` + INTERVAL CASE WHEN FREQUENCY='daily' THEN i-1 ELSE 0 END DAY
+ INTERVAL CASE WHEN FREQUENCY='yearly' THEN i-1 ELSE 0 END YEAR
as `Date`,
RESOURCE
FROM
yourtable INNER JOIN numbers
ON yourtable.REPETITIONS = numbers.num
ORDER BY
ID, numbers.i
请看小提琴。那太好了!我现在无法访问我的数据库,但看不出有任何原因它无法工作!一个简单的问题是,“日期”值显示为“2014年2月24日00:00:00+0000”。这个+0000是什么?它仍然是日期值吗?