Redshift CONVERT_TIMEZONE问题

问题描述 投票:1回答:1

我正面临着时间转换的问题。

每当我试图改变时间戳的时间。这是行不通的。我尝试过http://docs.amazonaws.cn/en_us/redshift/latest/dg/Date_functions_header.html的许多功能

但仍然只有一个函数没有将日期时间转换为时间戳。一个鸡蛋。我需要datetime qazxsw poi作为时间戳qazxsw poi格式。

你能告诉我转换它的确切功能吗?

我也尝试使用(2017-12-11 23:38:11)功能。它运行正常,每当我在其中传递静态日期时:(1513036800)

但是,如果我用我的变量名更改日期,我收到一条错误消息:

“错误:函数convert_timezone(”未知“,”未知“,字符变化)不存在提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。”

  • 你们能告诉我将日期转换成时间戳的功能吗?
  • 你能告诉我传递动态变量时出现上述错误的原因吗?
  • 我想一起添加时区和日期,然后获取时间戳值,这可能吗?
  • 传递动态变量时,Dateadd函数会产生相同的错误。
sql type-conversion amazon-redshift
1个回答
1
投票

每条错误消息看起来您的时间戳存储在varchar列中。您必须将列更改为时间戳或动态转换值才能使用时间戳功能。我建议第一个,因为它有更好的性能。 Redshift不支持列数据类型更改,因此要执行此操作,您必须使用CONVERT_TIMEZONE数据类型为时间列重新创建表DDL,将数据插入新表并用它替换旧表。

至于动态转换,它是这样的:

CONVERT_TIMEZONE('GMT','GMT -1','2017-12-11 23:38:11')

如果你转换列,你只需要使用timestamp部分

© www.soinside.com 2019 - 2024. All rights reserved.