Ответ 1
Это просто:
для DATETIME:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d %T');
для DATE:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d');
У меня есть куча дат в нашей базе данных, хранящихся в стандартном типе даты mysql.
Как я могу скрыть год до 2013 года, независимо от исходной даты.
Итак, если дата 2009-01-01, это будет 2013-01-01, но если это 2012-01-04, она будет конвертироваться в 2013-01-14.
Я понял, что это будет просто и очевидно, но я не мог понять это =/
Это просто:
для DATETIME:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d %T');
для DATE:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d');
Проблема с текущими ответами заключается в том, что ни один из них не учитывает високосный год. Если вы берете дату "2016-02-29" и конвертируете ее в 2013 год через конкатенацию, вы получаете "2013-02-29", что не является допустимой датой. Если вы запустите DATE_FORMAT ('2013-02-29', '% Y-% m-% d'), результат будет null
. Пример:
http://sqlfiddle.com/#!9/c5358/11
Лучший способ изменить год - использовать DATE_ADD, поскольку он учитывает переход на летнее время. Например:
SELECT
DATE_FORMAT(DATE_ADD(datecol, INTERVAL (YEAR(CURRENT_DATE()) - YEAR(datecol)) YEAR), '%Y-%m-%d') `date`
FROM t;
Вы можете заменить CURRENT_DATE() на "2013-01-01", если вы все еще хотите преобразовать все даты в 2013 году вместо текущего года. Пример этого решения:
UPDATE tableName
SET dateColumn = dateColumn + INTERVAL 4 YEAR
другой способ заключается в его конкатенации,
UPDATE Table1
SET DateColumn = CONCAT(YEAR(CURDATE()), '-', DATE_FORMAT(dateColumn, '%m-%d'))
Если это поле даты:
UPDATE table_name SET date_field_name = CONCAT("2013", RIGHT(date_field_name,6));
Если это поле даты даты:
UPDATE table_name SET date_field_name = CONCAT("2013", RIGHT(date_field_name,15));
Текущая дата из квеста была в 2013 году, я понимаю, что вы хотите установить текущий ГОД в дату.
UPDATE table_name SET date_col=DATE_FORMAT('2013-05-06',YEAR(CURRENT_DATE)-%m-%d);
Как я могу изменить год с текущей датой и месяцем, например: 01101997 он должен отображать только месяц и дату с текущим годом 01102019 он должен отображать только дату и месяц?? какой код использовать в php или mysql, помогите мне