DB2 查询中的 DATEDIFF

DATEDIFF in DB2 query

我有一个来自 mysql 的查询 运行 table 我最近迁移到 DB2。

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

在 DB2 上是否有与此等效的东西可以保持性能和功能?

SELECT DISTINCT
    LEAST(180, DATEDIFF(curdate(), start_date)) as days
FROM table2
where expire_date > curdate()

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

SELECT DISTINCT
    LEAST(180, DAYS(curdate()) - DAYS(start_date)) as days
FROM table2
where expire_date > curdate()

根据 DB2 的手册,DAYS() returns:"The result is 1 more than the number of days from January 1, 0001"。

在 Db2 11.1(对于 Linux、Unix 和 Windows)及更高版本上,这将有效

SELECT DISTINCT
    LEAST(180, DAYS_BETWEEN(current_date, start_date)) as days
FROM table2
where expire_date > current_date