Как выбрать максимальную дату из двух полей?
Есть два поля, в которых лежат даты. Нужно определить более позднюю из них. То есть хочется написать что-то вроде
SELECT MAX('2018-07-21', '2018-08-15')
или
SELECT MAX(date1, date2)
Понятно, что так не работает. Как это сделать?
Ответы (2 шт):
Автор решения: eclipse
→ Ссылка
SELECT id, date1, date2,
CASE
WHEN date1 >= date2 THEN date1
ELSE date2
END AS max_date
FROM table
вот что мне было нужно
Или с IF:
SELECT id, date1, date2, IF(date1 >= date2, date1, date2) AS max_date
FROM table
называется - редко используемые конструкции языка :)
Автор решения: Akina
→ Ссылка
MAX() работает с наборами записей, тогда как Вам нужно работать с набором скалярных значений в рамках одной записи. Для этого существует функция GREATEST():
SELECT GREATEST(date1, date2)