sql - 生成带有日期和小时的时间序列并在 Amazon Redshift 中创建表
问题描述
我想在 Amazon Redshift 中生成日期和小时表。以下查询适用于 Postgresql 9.1 及更高版本,但不幸的是,我们仅限于 Amazon Redshift,这会导致错误:“函数 generate_series 不存在”。非常感谢您在 8.02 中生成时间序列(如结果表)的帮助。
SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
'2008-03-04 12:00', '10 hours');
generate_series
generate_series
---------------------
2008-03-01 00:00:00
2008-03-01 10:00:00
2008-03-01 20:00:00
2008-03-02 06:00:00
2008-03-02 16:00:00
2008-03-03 02:00:00
2008-03-03 12:00:00
2008-03-03 22:00:00
2008-03-04 08:00:00
编辑:我能够使用以下代码生成我想要的时间序列,但无法将它们创建到 Redshift 中的表中。错误信息是:
“Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)。”
SELECT '2017-01-01 00:00:00'::timestamp + x * interval'1 hour' AS Date_Time
FROM generate_series(0, 1000 * 24) AS g(x)
任何想法如何将其创建到 Redshift 中的表中?谢谢。
解决方案
免责声明:请不要再使用此版本!
适用于 Postgres 8.4(无法检查 8.0,但应该也可以)
SELECT start_date + gs * interval '10 hours'
FROM (
SELECT '2008-03-01 00:00:00'::timestamp as start_date, generate_series(1,10, 1) as gs
) s
generate_series
从 1 到 10 并根据您的起始时间戳加入结果。结果是一个包含两列的表格:一列从每一行开始,一列包含从 1 到 10 的数字。- 现在您可以将生成的数字乘以您的间隔并将其添加到开头。
编辑: 这个问题已经讨论过了
推荐阅读
- r - 如何在 R 中重新排列 x 轴上的条形
- javascript - Ngstyle 随机选择项目
- android - Android Intent Whatsapp
- python - keras 风格转移示例有一个无法解释的常数
- python - Matplotlib/SNS:绘制直方图,但在 y 轴上有另一个变量的平均值
- reactjs - React,如何使用单独文件中的菜单来调用 api 并将数据返回到主文件的不同部分
- ios - SwiftUI TextField:点击时键盘不显示
- javascript - 在赛普拉斯中使用 2 个条件和 IF 语句
- javascript - 如何移动对面的元素?html,css,js
- webi - Webi 的 LISTAGG 分区