2017-10-06 116 views
1

我试图采取了类似这样的一个结构中:转换日期范围设置行

ID  START_DATE END_DATE 
1111 01/01/14 06/01/14 
1111 08/01/14 12/01/14 
1111 01/01/15 03/01/15 
1111 05/01/15 11/01/15 

并得到其连续的行包含START_DATE和END_DATE之间的日期,包括日期的结构:

ID  DATE_FIELD 
1111 01/01/14 
1111 02/01/14 
1111 03/01/14 
1111 04/01/14 
1111 05/01/14 
1111 06/01/14 
1111 08/01/14 
1111 09/01/14 
1111 10/01/14 
1111 11/01/14 
1111 12/01/14 
1111 01/01/15 
1111 02/01/15 
1111 03/01/15 
1111 05/01/15 
1111 06/01/15 
1111 07/01/15 
1111 08/01/15 
1111 09/01/15 
1111 10/01/15 
1111 11/01/15 

回答

1

使用功能generate_series()横向联接,即原创表的每一行:

select id, d::date as date_field 
from my_table, 
generate_series(start_date, end_date, interval '1 day') d; 

SqlFiddle