SQL Redshift 2 个时间戳之间的天数差异

Bil*_*yfm 1 sql datetime amazon-redshift

在我的 Redshift 表中,我有 2 列存储时间戳值:start_date_time 和 end_date_time

我需要找到start_date_time 和 end_date_time之间的差异,这样,如果差异为 1 天,则结果应为 1。如果 diff 为 12 小时,则结果应为 0.5,如果 diff 为 8 小时 - 则结果应为 0.3333 等。

我怎样才能做到这一点?我尝试使用 datediff 函数:但这不会返回我想要的:

select datediff(day,'2011-12-31 8:30:00','2011-12-31 20:30:00') as day_diff;
Run Code Online (Sandbox Code Playgroud)

结果是 0。但我需要 0.5,因为相差 12 小时。

Mat*_*lie 7

那么就以小时为单位除以24.0?

DATEDIFF(HOUR,'2011-12-31 8:30:00','2011-12-31 20:30:00') / 24.0
Run Code Online (Sandbox Code Playgroud)

或者为了更好的粒度,以分钟或秒为单位?

DATEDIFF(MINUTE,'2011-12-31 8:30:00','2011-12-31 20:30:00') / 1440.0

DATEDIFF(SECOND,'2011-12-31 8:30:00','2011-12-31 20:30:00') / 86400.0
Run Code Online (Sandbox Code Playgroud)