Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带索引标记的行的postgresql副本_Postgresql_Tags_Row - Fatal编程技术网

带索引标记的行的postgresql副本

带索引标记的行的postgresql副本,postgresql,tags,row,Postgresql,Tags,Row,有没有办法让sql查询返回拆分的行。我甚至不知道该怎么问。 在下面有“索引标签” select event.name, tb_ev.start_time, tb_ev.end_time from block as tb_ev,event where location_id in ( 28522 ) and tb_ev.event_id=event.id; name | start_time | end_time ---------------+------------+

有没有办法让sql查询返回拆分的行。我甚至不知道该怎么问。 在下面有“索引标签”

select event.name, tb_ev.start_time, tb_ev.end_time
from block as tb_ev,event
where location_id in ( 28522 ) 
and tb_ev.event_id=event.id;

name           | start_time | end_time 
---------------+------------+---------- 
 Register #1   | 06:00:00   | 09:00:00
 Register #2   | 11:00:00   | 12:00:00
 Register #3   | 11:00:00   | 14:00:00
从3行到7行

 name          | start_time | end_time | index_tag
---------------+------------+-------------------- 
 Register #1   | 06:00:00   | 09:00:00 | 06:00:00
 Register #1   | 06:00:00   | 09:00:00 | 07:00:00
 Register #1   | 06:00:00   | 09:00:00 | 08:00:00
 Register #2   | 11:00:00   | 12:00:00 | 11:00:00
 Register #3   | 11:00:00   | 14:00:00 | 11:00:00
 Register #3   | 11:00:00   | 14:00:00 | 12:00:00
 Register #3   | 11:00:00   | 14:00:00 | 13:00:00
试试这个:

SELECT *, start_time +
          generate_series(0,extract(hour from (end_time - start_time))::int -1)
          * interval '1 hour' as index_tag
FROM block
这有点难看,但它可以工作(
generate_series
不适用于
time
。仅
int
timestamp

这是你的电话号码

有关详细信息请尝试以下操作:

SELECT *, start_time +
          generate_series(0,extract(hour from (end_time - start_time))::int -1)
          * interval '1 hour' as index_tag
FROM block
这有点难看,但它可以工作(
generate_series
不适用于
time
。仅
int
timestamp

这是你的电话号码

详情