mysql从日期格式中提取年份

时间:2012-01-03 13:08:23

标签: mysql

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

例如:

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

以下查询无效

select YEAR ( subdateshow ) from table 

列类型为varchar。有什么方法可以解决这个问题吗?

8 个答案:

答案 0 :(得分:66)

由于您的subdateshow是VARCHAR列而不是正确的DATE, TIMESTAMP or DATETIME column,您必须先将字符串转换为日期,然后才能使用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

答案 1 :(得分:18)

finally

答案 2 :(得分:8)

你可以试试这个:

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

答案 3 :(得分:4)

这应该有效:

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

例如:

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

答案 4 :(得分:3)

试试这段代码:

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

答案 5 :(得分:2)

如果日期格式一致,这应该有效:

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

答案 6 :(得分:0)

TRY:

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

答案 7 :(得分:0)

试试这段代码:

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