设置时间戳的精确分钟值的最简单方法是什么?
这只会增加分钟数,而不是设置确切的值:
SELECT timestamp_field + interval '2 minutes';
最佳答案
使用date_trunc()
在添加 2 分钟之前:
SELECT date_trunc('hour', timestamp_field) + interval '2 minutes';
或者,保留秒和亚秒:
SELECT date_trunc('hour', timestamp_field)
+ interval '2 min'
+ extract('seconds' FROM timestamp_field) * interval '1 sec';
演示:
test=> SELECT now()
test-> UNION ALL
test-> SELECT date_trunc('hour', now())
test-> + interval '2 min'
test-> + extract('seconds' FROM now()) * interval '1 sec';
now
-------------------------------
2021-03-23 03:59:57.373279+01
2021-03-23 03:02:57.373279+01
(2 rows)
应该比操作文本表示和回传要快得多。
关于sql - 将时间戳分钟设置为特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66756525/