COUNT(TIMESTAMPDIFF(MINUTE, `Opened`, NOW())) < 0
- это логическое выражение (проверяющее, меньше ли COUNT
0), которое всегда будет возвращать 0 (ложь), поскольку COUNT
должно быть не меньше 0
. Вместо этого вы можете сделать SUM
результаты теста (поскольку MySQL обрабатывает логические значения как 0 или 1 в контексте numeri c):
SELECT SUM(TIMESTAMPDIFF(MINUTE, `Opened`, NOW()) < 0) as PastDue FROM `Task`
Обратите внимание, что вы можете упростить этот запрос просто сравнить Opened
с NOW()
, либо в SUM
:
SELECT SUM(`Opened` > NOW()) AS PastDue
FROM `Task`
, либо используя COUNT(*)
с предложением WHERE
:
SELECT COUNT(*) AS PastDue
FROM `Task`
WHERE `Opened` > NOW()
Обратите внимание, что исходя из формулировки вашего вопроса, вы, вероятно, захотите изменить условие с
`Opened` > NOW()
на
`Opened` < NOW()