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