sql - 将时间戳的分钟数设置为特定值
问题描述
设置时间戳的确切分钟值的最简单方法是什么?
这只会增加分钟而不是设置确切的值:
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)
应该比操作文本表示和回退快得多。
推荐阅读
- laravel - 使用 .default 进行组件注册不起作用
- javascript - 记住nodejs中同一用户的多个护照身份验证
- spring - 原因:java.io.FileNotFoundException:类路径资源[application.properties]无法打开,因为它不存在
- excel - 如何使用简单的公式
- hibernate - 实现 jparepository 的服务类在 Spring Boot 应用程序中始终返回 null
- python - mayavi python表面图错误的纵横比
- c# - 温莎城堡注册意外行为
- php - 我的 API 应该使用什么样的 DigitalOcean 液滴。它使用php和mysql,涉及所有mysql操作
- reactjs - React Native-设置View的高度与内容相同
- vpn - 如何使用 VPN 连接在远程 postegresql 服务器上连接 pgAdmin?