MySQL конвертировать VARCHAR на сегодняшний день - PullRequest
24 голосов
/ 16 января 2011

Мне нужно преобразовать значение varchar от 01.01.2011 в дату в mySQL, и я хочу только месяц и год. Чтобы я мог затем использовать функцию PERIOD_DIFF (поэтому мне нужно было бы преобразовать вышеприведенное в 201101).

Я пробовал разные способы, используя функцию STR_TO_DATE:

SELECT STR_TO_DATE(CYOApp_oilChangedDate, '%m/%Y') FROM CYO_AppInfo

Но я получаю странные результаты ... (например: 2009-01-00)

Что я делаю неправильно?

Ответы [ 2 ]

68 голосов
/ 16 января 2011
select date_format(str_to_date('31/12/2010', '%d/%m/%Y'), '%Y%m'); 

или

select date_format(str_to_date('12/31/2011', '%m/%d/%Y'), '%Y%m'); 

трудно понять из вашего примера

2 голосов
/ 06 октября 2015

Как благодарность за своевременную помощь, которую я получил отсюда - небольшое обновление выше.

$query = "UPDATE `db`.`table` SET `fieldname`=  str_to_date(  fieldname, '%d/%m/%Y')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...