MySQL从date格式中提取年份

我需要一个MySQL查询从我的数据库中的一个表中提取以下date格式的年份。

例如:

subdateshow ---------------- 01/17/2009 01/17/2009 01/17/2009 01/17/2009 01/17/2009 

下面的查询没有工作

 select YEAR ( subdateshow ) from table 

列types是varchar。 有什么办法可以解决这个问题吗?

由于您的subdateshow是一个VARCHAR列,而不是适当的DATE,TIMESTAMP或DATETIME列,所以您必须先将string转换为date,然后才能使用YEAR:

 SELECT YEAR(STR_TO_DATE(subdateshow, "%m/%d/%Y")) from table 

请参阅http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

 SELECT EXTRACT(YEAR FROM subdateshow) FROM tbl_name; 

你可以试试这个:

 SELECT EXTRACT(YEAR FROM field) FROM table WHERE id=1 

这应该工作:

 SELECT YEAR(STR_TO_DATE(subdateshow, '%m/%d/%Y')) FROM table; 

例如:

 SELECT YEAR(STR_TO_DATE('01/17/2009', '%m/%d/%Y')); /* shows "2009" */ 

试试这个代码:

 SELECT DATE_FORMAT(FROM_UNIXTIME(field), '%Y') FROM table 

如果date格式一致,这应该工作:

 select SUBSTRING_INDEX( subdateshow,"/",-1 ) from table 

尝试:

 SELECT EXTRACT(YEAR FROM (STR_TO_DATE(subdateshow, '%d/%m/%Y'))); 

试试这个代码:

SELECT YEAR( str_to_date( subdateshow, '%m/%d/%Y' ) ) AS Mydate