gpt4 book ai didi

postgresql date_trunc 到任意精度?

转载 作者:行者123 更新时间:2023-11-29 14:21:18 26 4
gpt4 key购买 nike

postgresql 有 date_trunc 可以将时间戳值截断为特定单位,例如小时分钟。我想知道是否有任何内置函数可以让我截断到 10 分钟

我知道一个技巧是将时间戳转换为纪元,做一些数学运算,然后再转换回来。但我不喜欢它。

最佳答案

没有你想要的功能,但如postgresql wiki中所说你可以自己定义函数:

CREATE OR REPLACE FUNCTION round_time_10m(TIMESTAMP WITH TIME ZONE) 
RETURNS TIMESTAMP WITH TIME ZONE AS $$
SELECT date_trunc('hour', $1) + INTERVAL '10 min' * ROUND(date_part('minute', $1) / 10.0)
$$ LANGUAGE SQL;

通常四舍五入到 $2 分钟:

CREATE OR REPLACE FUNCTION round_time_nm(TIMESTAMP WITH TIME ZONE, INTEGER) 
RETURNS TIMESTAMP WITH TIME ZONE AS $$
SELECT date_trunc('hour', $1) + ($2 || ' min')::INTERVAL * ROUND(date_part('minute', $1) / $2)
$$ LANGUAGE SQL;

关于postgresql date_trunc 到任意精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25717654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com