MySQL. Как перевести дату со строкового поля в формат даты?


Иногда дата в Базе Данных хранится в простом текстовом поле, а на в формате 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')
,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *