PostgreSQL date_bin() 函数使用指南
PostgreSQL date_bin()
函数将指定的时间戳截断到最近的指定的时间间隔的开始。
date_bin()
语法
这是 PostgreSQL date_bin()
函数的语法:
date_bin(stride INTERVAL, source TIMESTAMP, origin TIMESTAMP) -> timestamp
参数
stride
- 必需的。 它指示了要使用的时间间隔。比如
15 minutes
意味着以 15 分钟为一个间隔,结果的时间向间隔的时间点靠拢,即: 0 分, 15 分, 30 分 和 45 分。 source
- 必需的。 要处理的时间。
origin
- 必需的。如果它带有了时间,那么时间部分将会作为偏移量添加到结果时间上。
返回值
PostgreSQL date_bin()
函数返回一个时间戳,它是由 stride
参数指定的最近的间隔的开始。
date_bin()
示例
本示例展示了如何使用 PostgreSQL date_bin()
函数将时间截断为以 10 分钟为间隔的时间的开始。
SELECT date_bin('10 minutes', TIMESTAMP '2022-05-16 12:41:13', TIMESTAMP '2001-01-01');
date_bin
---------------------
2022-05-16 12:40:00
这里,由于使用了 10 minutes
作为时间间隔,那么结果时间中可能的分包括: 0 分,10 分,20 分,30 分,40 分,50 分。 41 分所在的间隔的开始就是 40 分。
您也可以使用 15 分钟为间隔,例如:
SELECT date_bin('15 minutes', TIMESTAMP '2022-05-16 12:41:13', TIMESTAMP '2001-01-01');
date_bin
---------------------
2022-05-16 12:30:00
这里,由于使用了 15 minutes
作为时间间隔,那么结果时间中可能的分包括: 0 分,15 分,30 分,45 分。
如果 origin
参数带有时间部分,则时间部分作为偏移量作为结果时间的偏移量。比如:
SELECT date_bin('15 minutes', TIMESTAMP '2022-05-16 12:41:13', TIMESTAMP '2001-01-01 00:05:02');
date_bin
---------------------
2022-05-16 12:35:02
这里, 05:02
作为偏移量累加到 2022-05-16 12:30:00
上,结果为: 2022-05-16 12:35:02
同样,您也可以使用 1 天作为间隔,比如:
SELECT date_bin('1 day', TIMESTAMP '2022-05-16 12:41:13', TIMESTAMP '2001-01-01');
date_bin
---------------------
2022-05-16 00:00:00
还有,
SELECT date_bin('1 day', TIMESTAMP '2022-05-16 12:41:13', TIMESTAMP '2001-01-01 01:05:02');
date_bin
---------------------
2022-05-16 01:05:02