PostgreSQL:将时间四舍五入到最接近的15分钟范围(0,15,30,45)

时间:2019-04-22 06:43:59

标签: sql postgresql

从这个post的答案来看,我有一个datetime列,我在select语句中执行date_time::timestamp - INTERVAL '1 HOUR'

我想做的是,我想创建一个15分钟范围(0、15、30、45)的间隔,所以结果应类似于2019-04-21 09:00:00或2019 -04-21 09:15:00等。结果应更改为最近的时间,即00:00至07:29分钟将四舍五入为00:00,07:30至15:00将四舍五入为15:00。这适用于15,30和45

因此,从2019-04-21 09:52:292019-04-21 09:45:002019-04-21 09:52:30应该变成2019-04-21 10:00:00

我已经搜索并发现了date_trunc函数,但是我不知道如何根据自己的具体情况进行操作。

谢谢!

编辑:我已经看过重复的帖子和一些答案。我找到了使用dateadd和datediff函数的答案,但是这些函数不能与postgresql一起使用。

select dateadd(minute, datediff(minute,0,GETDATE()) / 15 * 15, 0)

如何将其应用于postgresql?

Edit2:有些解决方案使用create函数向上和向下取整,但以上方法更好。

0 个答案:

没有答案