【问题标题】:Syntax error near "from" in amazon redshift query亚马逊红移查询中“来自”附近的语法错误
【发布时间】:2019-02-24 15:57:35
【问题描述】:

我正在处理 Amazon RedShift 中的查询。

我在查询中创建了语法错误,但我无法知道其背后的问题。查询对我来说看起来不错。

下面是查询:

select (TIMESTAMP WITHOUT TIME ZONE 'epoch' + (_action_date::float / 1000000) * INTERVAL '1 second') as eta
where eta >= (SELECT NOW() - INTERVAL '1 DAY')
from trips;

这里,_action_date 是一个 bigint 整数,所以我也将它转换为时间戳格式。 我正在尝试提取 _action_date 大于或等于昨天日期的那些行。

我得到的错误:

运行查询时出错:“来自”第 1 行或附近的语法错误:...ta where eta >= (SELECT NOW() - INTERVAL '1 DAY') from trips...^

请帮我纠正它。任何帮助将不胜感激。

【问题讨论】:

  • from 子句在select 之后和where 之前。我认为这是一个简单的错字。
  • 我现在收到此错误:运行查询时出错:Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)。
  • 不相关,但是:不需要在 now() 前面加上 select。您可以在表达式中使用标量函数,而无需 SELECT。

标签: sql amazon-redshift


【解决方案1】:
select (TIMESTAMP WITHOUT TIME ZONE 'epoch' + (_action_date::float / 1000000) * 
INTERVAL '1 second') as eta
from trips
where eta >= (SELECT getdate() - INTERVAL '1 DAY');

【讨论】:

  • 出现此错误:运行查询时出错:Redshift 表不支持指定的类型或函数(每个 INFO 消息一个)。
  • 这个仅代码的答案并没有真正解释该代码有何不同,或者为什么进行了更改。你能扩展它来解释什么和为什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
相关资源
最近更新 更多