Год выпуска mysql из формата даты
Мне нужен запрос mysql, чтобы извлечь год из следующего формата даты из таблицы в моей базе данных.
Например,
subdateshow
----------------
01/17/2009
01/17/2009
01/17/2009
01/17/2009
01/17/2009
следующий запрос не работал
select YEAR ( subdateshow ) from table
Тип столбца - varchar. Есть ли способ решить это?
Ответы
Ответ 1
Поскольку ваш subdateshow представляет собой столбец VARCHAR вместо правильного столбца DATE, TIMESTAMP или DATETIME, вам необходимо преобразовать строку до даты, прежде чем вы сможете использовать 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
Ответ 2
SELECT EXTRACT(YEAR FROM subdateshow) FROM tbl_name;
Ответ 3
Вы можете попробовать следующее:
SELECT EXTRACT(YEAR FROM field) FROM table WHERE id=1
Ответ 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" */
Ответ 5
попробуйте этот код:
SELECT DATE_FORMAT(FROM_UNIXTIME(field), '%Y') FROM table
Ответ 6
Это должно работать, если формат даты согласован:
select SUBSTRING_INDEX( subdateshow,"/",-1 ) from table
Ответ 7
TRY:
SELECT EXTRACT(YEAR FROM (STR_TO_DATE(subdateshow, '%d/%m/%Y')));
Ответ 8
попробуйте этот код:
SELECT YEAR( str_to_date( subdateshow, '%m/%d/%Y' ) ) AS Mydate