MySQL DATEDIFF() 함수에서 2자리 연도 값 활용하기
MySQL의 DATEDIFF() 함수에서는 2자리 연도 값을 하나의 날짜 표현식에만 사용할 수도 있고, 인수로 전달되는 두 날짜 표현식 모두에 사용할 수도 있습니다.
한쪽 표현식에만 2자리 연도를 사용하는 경우
예를 들어 아래 쿼리는 첫 번째 날짜 표현식에는 2자리 연도 값을, 두 번째 날짜 표현식에는 4자리 연도 값을 사용하고 있습니다.
mysql> Select DATEDIFF('18-10-22','2017-10-22');
+-----------------------------------+
| DATEDIFF('18-10-22','2017-10-22') |
+-----------------------------------+
| 365 |
+-----------------------------------+
1 row in set (0.00 sec)결과를 보면 2017년 10월 22일부터 2018년 10월 22일까지 정확히 365일의 차이가 계산된 것을 확인할 수 있습니다.
양쪽 표현식 모두에 2자리 연도를 사용하는 경우
아래 쿼리는 두 날짜 표현식 모두에 2자리 연도 값을 사용한 예입니다.
mysql> Select DATEDIFF('18-10-22','17-10-22');
+---------------------------------+
| DATEDIFF('18-10-22','17-10-22') |
+---------------------------------+
| 365 |
+---------------------------------+
1 row in set (0.00 sec)2자리 연도 해석 규칙 참고 사항
MySQL은 2자리 연도 값을 다음 규칙에 따라 해석합니다. 00~69 범위의 값은 2000~2069년으로 변환되며, 70~99 범위의 값은 1970~1999년으로 변환됩니다. 따라서 위 예제에서 '18'은 2018년으로, '17'은 2017년으로 올바르게 인식되어 정확한 결과를 반환합니다.
다만 2자리 연도는 세기(century)를 명확하게 나타내지 못하기 때문에, 특히 과거 날짜나 먼 미래의 날짜를 다룰 때는 의도하지 않은 해석 오류가 발생할 수 있습니다. 따라서 실무에서는 데이터의 명확성과 안정성을 위해 가급적 4자리 연도 값을 사용하는 것이 권장됩니다.