Как преобразовать строковую дату в европейском формате в действительный формат даты mysql? - PullRequest
1 голос
/ 08 февраля 2020

Я пытаюсь вставить 2 даты через форму в моей базе данных, формат даты в форме - строка, подобная этой 01/01/2020, и поле в базе данных - ДАТА, поэтому я понимаю, что это займет ГГГГ / ММ / DD, верно?

Я запустил этот запрос:

INSERT INTO property_tenant (id_user, id_property, check_in, check_out) 
VALUES(1375965, 119, STR_TO_DATE("01/01/2020", '%d/%m/%y'), 
                     STR_TO_DATE("01/01/2021", '%d/%m/%y'));

Я также пробовал это:

DATE_FORMAT(STR_TO_DATE("01/01/2021", '%d/%m/%y'), '%Y-%m-%d')

, но я получаю эту ошибку:

код: ' ER_TRUNCATED_WRONG_VALUE ', номер ошибки: 1292 , sqlMessage: " Сокращенное неверное значение даты: '01 / 01/2020 '"

1 Ответ

1 голос
/ 08 февраля 2020

Вы можете напрямую использовать функцию STR_TO_DATE() как

STR_TO_DATE('1,1,2021','%d,%m,%Y')

, которая уже дает результат даты. Действительно, столбец даты не имеет формата в таблице. fmt часть ('%d,%m,%Y') просто необходима для express частей литерала, соответствующих временным частям (day, month, Year) для правильного упорядочения.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...