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
我有一个来自 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