在 Redshift 中比较时间的有效方法

Efficient way to compare time in Redshift

如何只比较 Redshift 中 TIMESTAMP 列的时间元素? 我发现最接近的方法是对 HOUR、MINUTE 和 SECOND 元素多次使用 EXTRACT 并将它们连接在一起,但它似乎效率不高。我也考虑过 plpythonu UDF。

提前致谢。

最终我在 plpythonu 中写了一个简单的 UDF 来满足特定需求:

创建或替换函数compare_time(timestamp1_ TIMESTAMP, timestamp2_ TIMESTAMP) RETURNS 布尔值 不可变的 $$ 导入日期时间

start = datetime.time(timestamp1.hour, timestamp1_.minute, timestamp1_.second) end = datetime.time(timestamp2.hour, timestamp2_.minute, timestamp2_.second)

if _start <= _end: return 对 return错

$$ 语言 plpythonu;