mysql 날짜에서 연도 변경
데이터베이스에 표준 mysql 날짜 유형으로 저장된 날짜가 많습니다.
원래 날짜와 상관없이 어떻게 1년을 2013년으로 숨길 수 있습니까?
따라서 날짜가 2009-01-01이면 2013-01-01이 되지만 2012-01-04이면 2013-01-14로 변환됩니다.
간단명료할 줄 알았는데, 도무지 알 수가 없었어요=/
그것은 간단합니다.
DATTIME:
UPDATE table_name
SET date_col=DATE_FORMAT(date_col,'2013-%m-%d %T');
날짜:
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;
모든 날짜를 현재 연도가 아닌 2013년으로 변환하려면 CURRENT_DATE()를 '2013-01-01'로 대체할 수 있습니다.이 솔루션의 예는 다음과 같습니다.
http://sqlfiddle.com/ #!9/c5358/12
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);
언급URL : https://stackoverflow.com/questions/14491906/changing-year-in-mysql-date
'programing' 카테고리의 다른 글
| Python에서 문자열의 이스케이프 시퀀스 처리 (0) | 2023.07.30 |
|---|---|
| PyDev "Import에서 정의되지 않은 변수" 오류를 해결하려면 어떻게 해야 합니까? (0) | 2023.07.30 |
| ASP 이동 중.NET 아이덴티티 모델에서 클래스 라이브러리 (0) | 2023.07.30 |
| 자바.java.java잘못된 인수예외:기본 서블릿 처리를 구성하려면 서블릿 컨텍스트가 필요합니다. (0) | 2023.07.30 |
| 도커 파일에서 WORKDIR의 요점은 무엇입니까? (0) | 2023.07.30 |