gpt4 book ai didi

arrays - 生成日期时间范围

转载 作者:行者123 更新时间:2023-12-01 13:26:13 26 4
gpt4 key购买 nike

我想生成一个日期时间戳数组,增量为 1 小时

例子:

[2018-01-01 10:00:00, 2018-01-01 11:00:00, 2018-01-01 12:00:00]

数组函数GENERATE_DATE_ARRAY 可以满足我的要求,但不幸的是它似乎只适用于日/周/月,而不适用于日内时间粒度

有什么建议吗?谢谢

最佳答案

您可以将 GENERATE_ARRAY 函数与 ARRAYTIMESTAMP_ADD 函数结合使用,以构建具有所需范围的数组。这是一个例子:

SELECT
ARRAY(
SELECT TIMESTAMP_ADD('2018-01-01 10:00:00', INTERVAL x HOUR)
FROM UNNEST(GENERATE_ARRAY(0, TIMESTAMP_DIFF('2018-01-01 12:00:00', '2018-01-01 10:00:00', HOUR))) AS x
) AS timestamps

如果你愿意,你可以创建一个 SQL UDF 然后调用它:

CREATE TEMP FUNCTION MakeRange(lower TIMESTAMP, upper TIMESTAMP) AS (
ARRAY(
SELECT TIMESTAMP_ADD(lower, INTERVAL x HOUR)
FROM UNNEST(GENERATE_ARRAY(0, TIMESTAMP_DIFF(upper, lower, HOUR))) AS x
)
);
SELECT MakeRange('2018-01-01 10:00:00', '2018-01-01 12:00:00') AS timestamps

关于arrays - 生成日期时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147307/

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