k5054
GIYF: MySQL :: MySQL 8.0 справочное руководство :: 11.3 типы даты и времени[^]
Если вы настаиваете на формате "ДД-ММ-гггг", который может быть неоднозначным, если ваши пользователи ожидают "ММ-ДД-гггг", вам, возможно, придется еще немного погуглить, чтобы узнать, как правильно форматировать даты. Я бы посоветовал вам придерживаться "гггг-ММ-ДД", его однозначности, и в качестве бонуса, Если вам нужно (или хотите) сортировать по дате в приложении, в отличие от извлечения отсортированных данных из базы данных, прямое сравнение строк работает правильно, без необходимости писать метод декомпозиции и сравнения дат.
k5054
Если у нас есть функция compare(string1, string2)
затем compare("2018-08-01", "2019-07-02")
покажет, что первая строка меньше второй. Наверное, именно этого мы и хотим. Если мы используем "ММ-ДД-гггг",то compare("08-01-2018", "07-02-2019")
показывает, что первая строка больше второй, что, вероятно, не то, что мы хотим. Если бы мы хотели сравнить даты с помощью "ММ-ДД-гггг", нам пришлось бы написать compare_date(date1, date2)
функция, которая извлекает год, месяц, день из каждой строки, а затем сравнивает годы, месяцы и дни, чтобы определить, меньше ли date1, чем date2.