Redshift 查询以获取日期差异

Redshift Query to fetch difference of dates

我有 2 列 start_date 和 end_date,我需要导出第三列 date_diff,如下所示:

在 Redshift 中,您可以使用 datediff() 和算术:

select t.*, datediff(second, start_date, end_date) / 60.0 / 60 / 24 as diff
from mytable t

datediff() 计算作为第二个和第三个参数给出的两个日期表达式之间跨越的边界数,以作为第一个参数给出的单位表示。由于您希望结果为十进制天数,因此可以使用单位 day:相反,您可以计算秒数的差异,然后将其转换为十进制天数。

当然,这假定您将日期存储为 timestamps(或类似的)。如果你有字符串,那么你需要先转换它们,例如使用 to_timestamp().