Иногда дата в Базе Данных хранится в простом текстовом поле, а на в формате datetime. Причин этому может быть много — архитектура и потребности везде свои. Но как сортировать таблицу по дате и времени, если они в простом текстовом формате?
Для этой задачи следует воспользоваться встроенной функцией MySQL STR_TO_DATE.
Приведу пример:
mysql> select str_to_date("31/07/1990","%d/%m/%Y");
+--------------------------------------+
| str_to_date("31/07/1990","%d/%m/%Y") |
+--------------------------------------+
| 1990-07-31 |
+--------------------------------------+
1 row in set (0.00 sec)
Здесь мы первым параметром указываем строку с датой или поле, в котором хранится дата, а вторым — формат, в котором хранится дата в строке.
Также можно использовать DATE_FORMAT.
DATE_FORMAT(STR_TO_DATE("31/07/1990", '%d/%m/%Y'), '%Y-%m-%d')