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

Posted

技术标签:

【中文标题】计算两个日期之间的差异时出现 AWS Redshift 错误【英文标题】:Error in AWS Redshift while calculating a difference between two dates 【发布时间】:2017-06-15 19:31:05 【问题描述】:

当我在查询中添加 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 应该是“日期至”和“日期自”之间的差值加 1。 因此,如果我将 LIMIT 替换为 LIMIT 8(例如),它会完美运行。

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

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

【问题讨论】:

【参考方案1】:

“由于 DATEDIFF 在 PostgreSQL 中没有实现:/”

Postgres(特别是 Redshift)实现 datediff 函数。只是格式不同而已。

datediff(d,start_date,end_date)

在哪里d : days

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

【讨论】:

以上是关于计算两个日期之间的差异时出现 AWS Redshift 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何计算两个日期之间的差异?

如何计算两个日期之间的差异

在 Swift 中计算两个日期之间的差异

以小时和分钟计算两个日期之间的差异

计算两个日期时间odoo 10之间的差异[重复]

NetSuite 保存的搜索计算两个相关记录之间的日期差异