Я пытаюсь преобразовать строку в дату в MySQL, но она всегда возвращает год как 2019. Не уверен, почему это происходит.
SELECT STR_TO_DATE("01/01/1989","%d/%m/%Y");
2019-01-01
Ваше утверждение верно, см. Пример ..
STR_TO_DATE ("01/01/1989", "% d /% m /% Y") 1989-01-01
SELECT STR_TO_DATE("01/01/1989","%d/%m/%Y"); | STR_TO_DATE("01/01/1989","%d/%m/%Y") | | :----------------------------------- | | 1989-01-01 |
| STR_TO_DATE("01/01/1989","%d/%m/%Y") | | :----------------------------------- | | 1989-01-01 |
db <> fiddle здесь
Если у вас все еще есть пробелем, посмотрите, можете ли вы создать пример dbfidle, который показывает нам проблема
Я подозреваю, что ваш фактический код:
SELECT STR_TO_DATE("01/01/1989","%d/%m/%y");
, который возвращает:
, потому что спецификатор %y ожидает 2 di git год, поэтому он возвращает первые 2 цифры 1989 как год. Так что измените y на Y
%y
1989
y
Y
Не похоже, что ваш синтаксис совершенно правильный, вот пример, который я нашел:
SELECT STR_TO_DATE('21,5,2013','%d,%m,%Y');
не похоже, что ваш код разделяет день , месяц или год, может быть, в этом проблема?
Вот страница учебника, которую я проверил, может быть, здесь есть и более подробные примеры.