gpt4 book ai didi

postgresql - generate_series 函数中的子查询?

转载 作者:行者123 更新时间:2023-11-29 13:07:55 24 4
gpt4 key购买 nike

长话短说;我需要生成两个给定日期之间的所有日期。我的第一直觉就是 generate_series 函数,比如

\set start_date '''2019-10-01'''
\set end_date '''2019-11-07'''

SELECT current_date+AllDates.days
FROM generate_series(DATE :start_date-current_date,
DATE :end_date-current_date) AS AllDates(days);

这基本上是 psql 9.5 文档中的一些改编代码。这可行,但我想从简单查询中获取 start_dateend_date

SELECT min(checkout_date)
FROM table;

SELECT max(checkout_date)
FROM table;

我怎样才能做到这一点?有没有更好的整体方法?我确实意识到这两个小查询的主要问题是它们生成的表本身包含值而不是日期值,但由于我对 SQL 还很陌生,所以我很难理解如何处理这些情况.

最佳答案

with my_table(checkout_date) as (
values
('2019-01-01'::date),
('2019-01-03'::date)
)

select generate_series(min(checkout_date), max(checkout_date), interval '1 day')
from my_table;

generate_series
------------------------
2019-01-01 00:00:00+01
2019-01-02 00:00:00+01
2019-01-03 00:00:00+01
(3 rows)

请注意,您需要第三个 interval 参数。阅读有关设置返回函数的信息 in the documentation.

关于postgresql - generate_series 函数中的子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com