я получил следующий SQL QueryDATEDIFF - Заменить NULL с NOW()
SELECT
e.id,
c.name,
e.location,
e.designation,
e.time_period_from,
e.time_period_to,
DATEDIFF(e.time_period_to, time_period_from) AS tenure_in_days
FROM
employment e
LEFT JOIN
company c ON (c.id = e.company_id)
LIMIT
0, 10
Это прекрасно работает, у меня есть сценарий, где time_period_to
может иметь NULL
значения, в этом случае, я хочу, чтобы заменить его с током Дата.
Вот что я пробовал.
SELECT
e.id,
c.name,
e.location,
e.designation,
e.time_period_from,
e.time_period_to,
DATEDIFF(IF(ISNULL(e.time_period_to), NOW(), e.time_period_from)) AS tenure_in_days
FROM
employment e
LEFT JOIN
company c ON (c.id = e.company_id)
LIMIT
0, 10
Это дает мне следующее сообщение об ошибке
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
Где я буду неправильно?
'DATEDIFF (e.time_period_to, time_period_to)' - - это всегда будет '0', так как вы вычитаете время из себя. – Barmar
Нет, он возвращает мне NULL –
Он вернет 'NULL', если столбец' NULL'. Но когда столбец заполнен, он вернет 0, потому что вы вычитаете столбец из себя. – Barmar