这是另一个关于日期的 SQL 问题......
我正在使用 PHP 和 Postgres 构建一个日历应用程序,它将显示几天、几周甚至几个月的事件。每个事件都有开始日期和结束日期,按范围选择它们不是问题;然而,如果 Postgres 可以在每周的第一天拆分多周的事件,那对我来说会很有用。有人告诉我可以使用GROUP BY
and EXTRACT
,但我对 SQL 的了解不够好,无法理解如何操作。
问题是:这可以做到吗?精确的查询会是什么样子?目前我正在使用SELECT * FROM events WHERE (range) OVERLAPS (range)
;然后在 PHP 中进行分割,但这显然不是最佳的。
您可以使用 Postgres 函数生成系列 http://www.postgresql.org/docs/current/static/functions-srf.html。在 8.3 及更早版本中,执行以下操作
select current_date + s.a as dates from generate_series(0,14,7) as s(a);
在8.4中,你还可以这样做
SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
'2008-03-04 12:00', '10 hours');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)