【问题标题】:SQL generating a set of datesSQL 生成一组日期
【发布时间】:2010-10-05 17:27:19
【问题描述】:

我正在尝试找到一种方法让 SELECT 语句返回具有给定间隔的 2 个输入日期之间的日期集。我希望能够轻松更改将返回的时间范围和间隔,因此使用一系列 SELECT ... UNION 进行硬编码并不理想。

例如:我希望过去 60 秒内的所有日期都以 5 秒为间隔。

预期:

            times
---------------------
2009-02-05 08:00:00
2009-02-05 08:00:05
2009-02-05 08:00:10
2009-02-05 08:00:15
2009-02-05 08:00:20
...
2009-02-05 08:00:55

编辑: generate_series(...) 可以用来代替 SELECT 中的表,并模拟一个包含一系列数字的表,其中包含给定的起始值、结束值和可选的步骤。从那里可以将它转换为我需要的时间函数类型并在 SELECT 期间进行操作。

谢谢夸斯诺伊。

【问题讨论】:

    标签: sql datetime postgresql


    【解决方案1】:
    SELECT CAST (s || ' seconds' AS INTERVAL) + TIMESTAMP 'now'
    FROM generate_series(0, -60, -5) s
    

    【讨论】:

    • 在 PostgreSQL 中,TIMESTAMP 算法真的很难:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多