从这个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:29
到2019-04-21 09:45:00
和2019-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函数向上和向下取整,但以上方法更好。