Sqlite如何对时间进行四舍五入

问题描述 投票:0回答:1

如何在 sqlite 中从日期时间中绕过减号和秒?

喜欢:

time_round(2023-10-02 23:52:51, '秒') = 2023-10-02 23:52:00

time_round(2023-10-02 23:02:01, '秒') = 2023-10-02 23:02:00

time_round(2023-10-02 23:02:01, '分钟') = 2023-10-02 23:00:00

sql sqlite
1个回答
0
投票

这是一种方法的演示:-

DROP TABLE IF EXISTS a_table;
CREATE TABLE IF NOT EXISTS a_table (time TEXT DEFAULT CUURENT_TIMESTAMP);
WITH counter(x) AS (SELECT 1 UNION ALL SELECT x + 1 FROM counter LIMIT 10)
INSERT INTO a_table SELECT datetime('now',(random() % 1234)||' seconds') FROM counter;

/* The query (see the expression used for the `roundedTime` column)
SELECT *,
    datetime(
        time,
        '-'||strftime('%M',time)||' minutes',
        '-'||strftime('%S',time)||' seconds'
    ) AS roundedTime,
    strftime('%M',time) AS mins,
    strftime('%S',time) AS secs
FROM a_table;
DROP TABLE IF EXISTS a_table;

运行时,输出将类似于:-

  • 请注意,数据基于运行时的日期和时间,并且将对每行进行 0 - 1233 秒的调整。因此,每次运行都会产生不同的结果(通常可能是同一小时将 1234 更改为更大的数字 3600,差异长达一个小时)。由 LIMIT (10) 控制插入的行数
© www.soinside.com 2019 - 2024. All rights reserved.