计算两个日期之间的差异时AWS Redshift出错

时间:2017-06-15 19:31:06

标签: amazon-web-services amazon-redshift

当我在查询中添加LIMIT TO_DATE(?,'YYYY-MM-DD') - TO_DATE(?,'YYYY-MM-DD') + 1时,我遇到了这个问题:

ERROR: Not implemented
DETAIL:
error: Not implemented
code: 1001
context: 'IsA(cons,Const)' - 
query: 1621055
location: xen_execute.cpp:1077
process: padbmaster pid=10863

所以,正如您所看到的,没有一个好的错误信息可以帮助我解决问题。

该LIMIT应该是" date to"之间的差异。和"约会"加1。 因此,如果我仅仅为LIMIT 8替换LIMIT(例如),它就能完美运行。

此查询应该在Redshift和PostgreSQL中执行,因此像DATEDIFF这样的函数不会有用,因为在PostgreSQL中没有实现DATEDIFF:/

如果它可以帮助你,我看到另外一些人处理类似的问题:https://forums.aws.amazon.com/thread.jspa?threadID=239872

1 个答案:

答案 0 :(得分:3)

  

"由于DATEDIFF未在PostgreSQL中实现:/"

Postgres(特别是Redshift)实现了约会功能。它只是不同的格式。

datediff(d,start_date,end_date)

其中d : days

请记住,不要将运算符用于它们不应该的数据类型。在日期上使用算术运算符(+ / - )有时会产生奇怪的结果并且可能是灾难性的。