DB2 查询中的 DATEDIFF

Tom*_* N. 1 sql db2 datediff

我有一个来自 mysql 的查询,该查询一直在我最近迁移到 DB2 的表上运行。

由于下面的行,该查询现在在 DB2 上失败,表示无法找到 DATEDIFF。我假设只是因为这不是 db2 上的有效函数。

在 DB2 上是否有类似的东西可以保持性能和功能?

SELECT DISTINCT
    LEAST(180, DATEDIFF(curdate(), start_date)) as days
FROM table2
where expire_date > curdate()
Run Code Online (Sandbox Code Playgroud)

The*_*ler 6

我使用该DAYS()函数将日期转换为数字序列号,然后减去它们,如下所示:

SELECT DISTINCT
    LEAST(180, DAYS(curdate()) - DAYS(start_date)) as days
FROM table2
where expire_date > curdate()
Run Code Online (Sandbox Code Playgroud)

根据 DB2 的手册,DAYS()返回:“结果比从 0001 年 1 月 1 日开始的天数多 1”。