2012-05-01 4 views
0

У меня есть mysql db, у которого есть дата столбца, но это varchar и отформатирован как этот '01/05/2012 ', но мне нужно преобразовать его в формат datetime, потому что я буду делать сравнения datetime.MySQL Преобразование в DateTime

Что я могу сделать?

Благодаря

+0

Попробуйте это [ссылка] (https://www.google.lv/search?aq=f&ix=ucb&ie=UTF-8&q=mysql+date+ функции). – vyegorov

ответ

1

Использование STR_TO_DATE():

SELECT STR_TO_DATE(`date`, '%d/%m/%Y') FROM tbl; 
+0

Почему ''% e /% c /% Y'', а не ''% d /% m /% Y''? Является ли еще одно универсальное, чем другое (особенно при преобразовании из строки)? Я имею в виду, что я не против ни одного из них, просто любопытно, потому что ''% d /% m /% Y'' лучше соответствует примеру OP, но вы используете ''% e /% c /% Y ' здесь. –

+0

@AndriyM: Собственно, вы правы: из вопроса OP формат должен быть '% d /% m /% Y'; Я обновил свой ответ. Я изначально написал «% e /% c /% Y» из привычки, так как обычно я предпочитаю однозначные дни и месяцы при использовании формата d/m/YYYY. – eggyal

+0

[Я только что проверил] (http://sqlfiddle.com/#!2/d41d8/371) и получается, что оба формата работают правильно с '' 01/05/2012''- или ''1/5/2012'-подобные даты. (Как я уже сказал, мне было любопытно :) Не слишком много, но SQL Fiddle - такая отличная вещь для этих маленьких чеков, я просто ничего не мог поделать.) –

Смежные вопросы