当前位置: 首页 > 知识库问答 >
问题:

在Amazon Redshift中生成带有日期和时间的时间序列并创建表

程招
2023-03-14

我想在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表中。错误消息为:

“红移表不支持指定的类型或函数(每个信息消息一个)。”

SELECT '2017-01-01 00:00:00'::timestamp + x * interval'1 hour' AS Date_Time
FROM generate_series(0, 1000 * 24) AS g(x)

有什么想法可以在红移中创建一个表吗?谢了。

共有1个答案

逄嘉禧
2023-03-14

这样的脚本可能会对您有所帮助,

CREATE or REPLACE function gen_ser() returns integer
as 
$body$
declare
query varchar;
i integer := 0;
begin
loop 
exit when i >= 100;
i:=i+10;
query :='Insert into table select ''01-01-2018''::timestamptz + '''|| i ||' hours'' ::interval;';
execute query;
end loop;
return 1;
end;
$body$
language plpgsql;
 类似资料:
  • 问题内容: 如何查询SQL Server的SQL Server 2005表列的创建日期? 我尝试获取该信息,但是创建日期未包含在此存储过程中。 如何才能做到这一点? 问题答案: 有一个名为sys.Columns的系统表,您可以从中获取列信息。如果要查看特定表的列,可以执行以下操作: 或者,您可以获取如下表信息: 但是我找不到有关列创建日期的任何信息。 更新: 这可能会有所帮助。

  • 问题内容: 是否可以使用Jodatime生成随机日期时间,以使日期时间的格式为yyyy-MM-dd HH:MM:SS,并且应该能够生成两个随机日期时间,其中Date2减去Date1会大于2分钟但小于60分钟 请提出一些方法。 问题答案: 这严格遵循您的要求(更正的格式除外)。 如果运行此命令,您会注意到多年来您将获得令人发指的值,但这仅仅是在DateTime整个可能范围(或该日期的Date)上生成

  • 问题内容: 我将数据存储在以下结构的数组中, 第一列是纪元时间(in ms),第二列是y1,第三列是y2。我 需要一个在x轴y1和y2左,右 y轴上都有时间的图。 我一直在仔细阅读文档,但找不到任何方法来 显示我的x轴刻度,以显示日期和时间,例如“ 28/12 16:48”,即 “ date / month hour:min”。所有文档帮助我的是 仅显示日期,但这不是我想要的。任何帮助将不胜感激。

  • 本文向大家介绍Oracle Database 生成没有时间成分的日期,包括了Oracle Database 生成没有时间成分的日期的使用技巧和注意事项,需要的朋友参考一下 示例 所有DATE都有时间成分;但是,习惯上存储不需要将时间/分钟/秒设置为零(即午夜)的时间信息的日期。 使用ANSIDATE文字(使用ISO 8601日期格式): 使用以下命令将其从字符串文字转换为TO_DATE(): (有

  • 我通过连接单独的月、日、年和时间列创建了日期列,但是月和日列的输入数据形式为1,而不是01表示月和日。这是我返回空列的原因吗?还是有其他原因?如果这就是原因,那么如何将日和月列从1改为01、2改为02、…? 这是我第一次使用时间戳,而且我是Scala新手,所以我非常感谢您的帮助。

  • 问题内容: 我基本上是想将Unix时间戳(time()函数)转换为与过去和将来的日期都兼容的相对日期/时间。因此输出可能是: 2个星期前 1小时60分钟前 15分钟54秒前 10分钟15秒后 首先,我尝试编写此代码,但是做了一个无法维护的巨大功能,然后我在互联网上搜索了几个小时,但我所能找到的只是脚本仅产生一部分时间(例如:“ 1小时前”纪要)。 您是否已经有执行此操作的脚本? 问题答案: 此功能