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

MySQL에서 '0000-00-00' 날짜의 연도 값은 Year(2) 또는 Year(4) 중 어떤 형식으로 반환될까?

MySQL 테이블에 날짜 값이 '0000-00-00'으로 저장되어 있다면, 이러한 날짜에서 연도(year) 값을 추출할 때 MySQL은 0을 반환합니다. 즉, 결과가 Year(2) 또는 Year(4) 형식으로 표현되지 않습니다.

이를 쉽게 이해하기 위해 'detail_bday' 테이블의 다음 데이터를 살펴보겠습니다.

mysql> Select * from detail_bday;
+----+---------+------------+
| Sr | Name    | Birth_Date |
+----+---------+------------+
| 1  | Saurabh | 1990-05-12 |
| 2  | Raman   | 1993-06-11 |
| 3  | Gaurav  | 1984-01-17 |
| 4  | Rahul   | 1993-06-11 |
| 5  | Sonia   | 1993-11-31 |
| 6  | Ram     | 0000-00-00 |
+----+---------+------------+
6 rows in set (0.00 sec)

위 테이블에는 'Ram'이라는 사용자의 생년월일이 '0000-00-00'으로 저장되어 있습니다. 이제 다음 쿼리를 실행하여 해당 날짜에서 연도 값을 추출해 보겠습니다.

mysql> Select Year(Birth_date) from detail_bday Where Name = 'Ram';
+------------------+
| Year(Birth_date) |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

결과 분석

위 결과 집합을 보면, MySQL이 유효하지 않은 날짜 '0000-00-00'에 대해 Year(2)나 Year(4) 같은 특정 형식의 값을 반환하는 대신 단순히 0을 반환한다는 것을 확인할 수 있습니다.

참고로, YEAR(2) 형식은 MySQL 5.5.7부터 더 이상 권장되지 않으며, MySQL 8.0에서는 완전히 제거되었습니다. 따라서 현재는 YEAR(4), 즉 4자리 연도 형식만 지원되며, 유효하지 않거나 영(zero) 날짜에 대해서는 항상 0이 반환된다는 점을 기억하는 것이 좋습니다.