(PostgreSql)根据给定的开始日期,结束日期和间隔(以分钟为单位)计算时隙

时间:2012-09-10 13:57:55

标签: postgresql datetime

我有一个查询,我需要使用TimeSlots(以分钟为单位)。

说输入

Start Date : 01-08-2012 00:00:00,
End Date : 02-08-2012 00:00:00,
Interval : 5 Minutes

输出应为

2012-08-01 00:00:00.0
2012-08-01 00:05:00.0
2012-08-01 00:10:00.0
2012-08-01 00:15:00.0
.
.

(请忽略日期格式,因为我已找到出路) 没有表可以参考我可以在哪里获取基本时间戳并执行floor()等。

我想我们可以使用PostgreSQL库中的now()函数,但到现在为止我找不到“how?”

提前致谢。

1 个答案:

答案 0 :(得分:8)

嗯,这是我喜欢Postgres的原因之一:

SELECT generate_series(
   '01-08-2012 00:00:00'::timestamp, 
   '02-08-2012'::timestamp,
   '5 minutes'::interval);


  ┌─────────────────────┐
  │   generate_series   │
  ├─────────────────────┤
  │ 2012-01-08 00:00:00 │
  │ 2012-01-08 00:05:00 │
  │ 2012-01-08 00:10:00 │
  │ 2012-01-08 00:15:00 │
  │ 2012-01-08 00:20:00 │
  ...