这与Getting date list in a range in PostgreSQL有些类似,但不完全相同(我认为)。Postgres SQL:表格具有开始日期和结束日期列时获得每个日期的一个结果
我有一个SQL表,其中每行包含一个开始和结束日期。我想形成一个查询,以便对于每一行,对于此范围内的每个日期,我都会得到一个结果。
例如:id=1, title=MyRange, start=2012-08-05, end=2012-08-08
查询:SELECT * FROM myTyble where id=1 AND ...
结果:
id=1, title=MyRange, date=2012-08-05
id=1, title=MyRange, date=2012-08-06
id=1, title=MyRange, date=2012-08-07
id=1, title=MyRange, date=2012-08-08
我意识到,唯一和主键列,将在此结果集被复制,但是这不要紧,我。任何想法都会非常受欢迎!
这看起来很整洁(当然,我必须首先对它进行基准测试),但是我的Postgres 8.3安装使用'generate_series'出现错误。我是否需要额外的选项,扩展或库?我得到“ERROR:function generate_series(timestamp without time zone,timestamp without time zone,interval)”不存在。提示:没有函数匹配给定的名称和参数类型,您可能需要添加显式类型转换。 – Jens
@Jens:8.3的['generate_series'](http://www.postgresql.org/docs/8.3/interactive/functions-srf.html#FUNCTIONS-SRF-SERIES)没有时间戳版本,但你可以在我的更新中伪造它。 –