Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 YEAR 유형 컬럼에 현재 연도를 자동으로 삽입하는 방법

MySQL에서 YEAR 유형의 컬럼에 현재 연도를 자동으로 삽입하려면 쿼리문 안에서 CURDATE() 또는 NOW() 함수를 사용하면 됩니다.

기본 원리

YEAR 타입은 날짜·시간 값을 입력받으면 MySQL이 자동으로 그 값에서 연도 부분만 추출하여 저장합니다. 따라서 CURDATE()(현재 날짜)나 NOW()(현재 날짜 및 시간)를 전달해도 결과적으로 현재 연도만 저장되는 것입니다.

CURDATE() 사용 예제

mysql> Insert into year1(Year_Copyright) values (CURDATE());
Query OK, 1 row affected, 1 warning (0.06 sec)

mysql> Select * from year1;
+----------------+
| Year_Copyright |
+----------------+
|           2017 |
|           2017 |
+----------------+
2 rows in set (0.00 sec)

NOW() 사용 예제

mysql> Insert into year1(Year_Copyright) values (NOW());
Query OK, 1 row affected, 1 warning (0.06 sec)

mysql> Select * from year1;
+----------------+
| Year_Copyright |
+----------------+
|           2017 |
|           2017 |
|           2017 |
+----------------+
3 rows in set (0.00 sec)

추가 참고 사항

두 함수 모두 동일한 결과를 반환하지만, 반환하는 값의 성격이 조금 다릅니다.

  • CURDATE(): 'YYYY-MM-DD' 형식의 현재 날짜만 반환합니다.
  • NOW(): 'YYYY-MM-DD HH:MM:SS' 형식의 현재 날짜와 시간을 함께 반환합니다.

YEAR 컬럼에는 어느 쪽을 넣어도 MySQL이 내부적으로 앞의 네 자리(연도)만 잘라내어 저장하기 때문에 결과는 같습니다. 또한 쿼리 실행 시 나타나는 경고(1 warning)는 날짜/시간 값이 YEAR 타입으로 변환되는 과정에서 발생하는 것으로, 데이터가 올바르게 저장되므로 무시해도 무방합니다.