在MySQL中如何将2个单独的文本连接到一个从字符串中选择的文本

在MySQL中如何将2个单独的文本连接到一个从字符串中选择的文本,mysql,string,join,substring,Mysql,String,Join,Substring,我有类似“01.02.2012”的字符串,类似“DD.MM.YYYY”,我需要将其转换为date或类似“YYYY-MM-DD”的字符串 我尝试: SELECT SUBSTRING( txtdate, 7, 4 ) AS `year` , SUBSTRING( txtdate, 4, 2 ) AS `month` , SUBSTRING(txtdate, 1, 2 ) AS `day` FROM info 所以我得到了年、月、日,现在我想把课文加入其中。 我刚试过这个 SELECT CONCA

我有类似“01.02.2012”的字符串,类似“DD.MM.YYYY”,我需要将其转换为
date
或类似“YYYY-MM-DD”的字符串

我尝试:

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);

但是我得到一个错误。

不幸的是,您不能在字段定义列表的其他位置引用别名字段

SELECT x AS a, CONCAT(y, a)
不起作用。你必须使用

SELECT CONCAT_WS('-', SUBSTRING(txtdate, 7, 4), SUBSTRING(...), SUBSTRING(...))
或者,如果您将该日期存储在数据库中的一个适当的日期字段中,则只需

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