Вот еще один пример:
GREATEST(COALESCE(UNIX_TIMESTAMP(STR_TO_DATE(dtResolved, '%m/%d/%Y %r')), 0), COALESCE(UNIX_TIMESTAMP(STR_TO_DATE(dtClosed, '%m/%d/%Y %r')), 0))
Этот код даст вам большую дату в метке времени. Причина в том, что функция GREATEST
вернет вашу дату в виде строки без пробелов и косых черт между годом, месяцем или датой. Так что отметка времени - это хороший способ предотвратить это.
На всякий случай dtResolved
и dtClosed
равны null
, и вы бы сравнили их, используйте COALESCE
с 0
вместо обоих значений. Это предотвратит ваш запрос от сбоев. Он вернет 0
.
Как сказал Тим, преобразование строковой даты в объект даты - неплохая идея. Всегда предпочтительно работать с объектом даты для нескольких функций, которые существуют.