2012-01-03 15 views
42

Necesito una consulta de mysql para extraer el año del siguiente formato de fecha de una tabla en mi base de datos.extracto de mysql año a partir del formato de fecha

Por ejemplo:

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

la siguiente consulta no trabajar

select YEAR (subdateshow) from table 

El tipo de columna es VARCHAR. ¿Hay alguna forma de resolver esto?

Respuesta

56

Desde su subdateshow es una columna VARCHAR en lugar del correcto DATE, TIMESTAMP or DATETIME column usted tiene que convertir la cadena hasta la fecha antes de poder utilizar AÑO en él:

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

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

+1

esto está funcionando perfectamente .. :) –

+0

cómo poner un parámetro, donde en ese seleccione 'donde el año = x' –

+0

puede comprobar esto pregunta mía http://stackoverflow.com/questions/31204869/mysql-php-pdo-select-a-part-of-row-value-date-record?noredirect=1#comment50412416_31204869 –

4

esto debería funcionar:

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

por ejemplo:

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

TRY:

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

prueba este código:

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

6

Usted puede intentar esto:

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

prueba este código:

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

Esto debería funcionar si el formato de fecha es consistente:

select SUBSTRING_INDEX(subdateshow,"/",-1) from table 
11
SELECT EXTRACT(YEAR FROM subdateshow) FROM tbl_name; 
Cuestiones relacionadas