0

所以目前,一位聪明的数据科学家在这里设置了一个每小时运行一次的查询:

WHERE creationdate > DATETIME(DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE))

创建日期以这种格式显示:2021-11-05T01:32:57

所以我只是写了一个单独的查询(不同的表),如果没有选择一个间隔但运行良好但失败:

TransactionTimestamp >= DATETIME(DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE))

错误是:

对于参数类型的运算符 >= 没有匹配的签名:TIMESTAMP、DATETIME。支持的签名:ANY >= ANY at [7:5]

TransactionTimestamp 以这种格式显示: 2021-11-05 03:14:22 UTC

我只是困惑如何格式化?

4

1 回答 1

0

'TransactionTimestamp' 数据类型为“TIMESTAMP”,而DATETIME()功能输出数据类型为“DATETIME”数据类型,基于其输入参数和运算符 > 或 < 运算符无法比较这两种不同的数据类型。

原因是 dateadd() 函数返回日期作为输出,即使您将时间戳作为输入参数传递,dateadd() 也会获取时间戳并从中提取日期。

相反,您可以使用TIMESTAMP_ADD函数:

TransactionTimestamp >= TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -60 MINUTE)
于 2021-11-05T19:14:42.017 回答