Как объединить 2 отдельных текста в один - выбранный из строки - В MySQL - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть дата в строке типа «01.02.2012», например, «ДД.ММ.ГГГГ», и мне нужно, чтобы она была преобразована в DATE или строку типа «ГГГГ-ММ-ДД».:

SELECT SUBSTRING( txtdate, 7, 4 ) AS `year` , SUBSTRING( txtdate, 4, 2 ) AS `month` , 
SUBSTRING(txtdate, 1, 2 ) AS `day`
FROM info

Итак, у меня есть год, месяц и день, и теперь я хочу присоединить тексты к одному.Я пытаюсь это сделать сразу после

SELECT CONCAT_WS('-',year,month,day);

, но получаю ошибку ..

1 Ответ

1 голос
/ 23 февраля 2012

К сожалению, вы не можете ссылаться на псевдонимы в других местах списка определений полей.

SELECT x AS a, CONCAT(y, a)

не работает. Вы должны использовать

SELECT CONCAT_WS('-', SUBSTRING(txtdate, 7, 4), SUBSTRING(...), SUBSTRING(...))

или, если бы вы сохранили эту дату в соответствующем поле DATE в базе данных, это было бы просто

SELECT DATE_FORMAT('%Y-%m-%d', datefield)
...