选择时间,填写空小时

时间:2013-07-15 09:03:37

标签: mysql sql gaps-and-islands

我这里有一个数据库

| TIME | STOCK
|9:00  |24
|12:00 | 15

我想显示时间早上6点到明天凌晨4点

我想把它放在一个mysql查询中,我会在特定时间内将null放在我的数据库中不相似

像这样

ID   | STOCK
6:00 |NULL
7:00 |NULL
8:00 |NULL
9:00 |24
10:00|NULL
11:00|NULL
12:00|15

依旧......

有没有人知道解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:1)

一种方法就是你可以为你需要的所有时间段创建临时表,左边的连接就可以了。

股票表:

create table stock (TIME varchar(5), STOCK int(2));
insert into stock values
('9:00',24),
('12:00',15);

时间表(需要是临时的)

  create TEMPORARY table timings (timings varchar(5));
    insert into timings values
    ('6:00'),
    ('7:00'),
    ('8:00'),
    ('9:00'),
    ('10:00'),
    ('11:00'),
    ('12:00'),
    ('13:00'),
    ('14:00'),
    ('15:00'),
    ('16:00'),
    ('17:00'),
    ('18:00');

您的选择查询将是

select timings,STOCK from timings t left join
stock s on t.timings = s.TIME;

请参阅fiddle