DATEDIFF в запросе DB2 - PullRequest
       9

DATEDIFF в запросе DB2

0 голосов
/ 18 октября 2018

У меня есть запрос от mysql, который был запущен для таблицы, которую я недавно перенес в DB2.

Запрос теперь не выполняется в DB2 из-за строки ниже, сообщающей, что DATEDIFF не может быть найден.Я предполагаю только потому, что эта функция недопустима в db2.

Есть ли эквивалент в DB2, который будет поддерживать как производительность, так и функцию?

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

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

На 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
0 голосов
/ 18 октября 2018

Я использую функцию DAYS(), чтобы преобразовать даты в числовые последовательные числа, а затем просто вычесть их, как в:

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

Согласно руководству DB2, DAYS() возвращает: «РезультатНа 1 больше, чем количество дней с 1 января 0001 года ".

...