我试图在current_date -4个月(00:00:00.000000次)和current_date -1天(00:00:00.000000次)之间创建一个序列(见截图)。我使用下面的查询并给出正确的开始时间和日期,但是停止时间是00:59:00.000而不是00:00:00.000000 (天是正确的)。有什么帮助吗我错过了什么?
SELECT
current_date as current_date_,
current_date - INTERVAL '4' MONTH AS date_one,
current_date - INTERVAL '1' DAY AS date_two,
DATE_ADD('MINUTE', m, h) AS dates_m
FROM UNNEST(SEQUENCE(current_date - INTERVAL '4' MONTH, DATE_TRUNC('DAY', LOCALTIMESTAMP) - INTERVAL '1' DAY, INTERVAL '1' HOUR)) AS t(h)
CROSS JOIN UNNEST(SEQUENCE(0, 59)) AS t(m)
ORDER BY dates_m

谢谢!!
发布于 2022-11-03 21:43:19
与其交叉连接两个序列,为什么不同时生成所有中间时间戳呢?
不幸的是,我无法测试这一点,因为我手头没有Presto数据库,但是基于文献资料 (着重号是添加的):
序列(开始、停止、步骤) 生成从
start到stop,的时间戳序列,由step递增。步骤的类型可以是INTERVAL DAY TO SECOND或INTERVAL YEAR TO MONTH。
这不是很管用吗?
select date_m
from unnest(
sequence(
current_date - interval '4' month,
current_date,
interval '1' minute
)
) t(date_m)不确定Presto是否知道,因为我们在几分钟内给出一个间隔,我们想要一个时间戳序列,这两个边界都是日期。如果没有,则可能需要将边界转换为timestamps:
select date_m
from unnest(
sequence(
cast(current_date as timestamp) - interval '4' month,
cast(current_date as timestamp),
interval '1' minute
)
) t(date_m)https://stackoverflow.com/questions/74308730
复制相似问题