I am trying to round up a timestamp to the next full 10 minutes.
I have tried below solutions but wasn't able to get my expected results

我也试了date_trunc()次,但都不能用.

预期结果:

input expected output
2023-07-01 10:00:00 2023-07-01 10:10:00
2023-07-01 10:00:01 2023-07-01 10:10:00
2023-07-01 10:01:00 2023-07-01 10:10:00
2023-07-01 10:05:00 2023-07-01 10:10:00
2023-07-01 10:09:59 2023-07-01 10:10:00

推荐答案

以下是一种方法:

select dtime,
       (date_trunc('hour', dtime) +
        (cast(extract(minute from dtime) as int)/10 + 1) * 10 * interval '1 minute' 
       ) as rounded_dtime
from mytable

Demo here

Sql相关问答推荐

SQL查询以条件空值跟踪生产操作结果进展

SQL更新,在2个额外的表上使用内部连接

用于平均多个数据并与一个数据点进行比较以判断偏移量的SQL查询

Android房间fts4匹配语法AND OR

如何根据给定条件PostgreSQL迭代减少组中的行数

导出部分条形码字符串GS1-128

正在编写查询.我需要将订阅的时间段分为第一个订阅中包含的另一个订阅之前和之后的时间段

在迁移到.NET8后,使用Array.Containers的F#查询表达式失败

使用拆分器将已分组的不同值连接在一起

通过UPDATE SELECT更新表时出现问题

替换SQL Server XML中多处出现的 node 值

当我返回 sql 列时,有没有办法只反转数字? ( hebrew )

计算 BigQuery 中列的中值差 - 分析函数不能作为聚合函数的参数

如何根据共同列值从两个表中包含列,但只包含左表中的行

如何从一张表中获取值在至少三行相同的记录

带有数组输入参数的Snowflake UDF优化

过滤具有一对多关系的两个表之间的数据

使用 SAVE TRANSACTION 时 BEGIN 和 COMMIT 语句的数量不匹配

SQL中所有先前日期的累计总和

聚合 Athena 中的列