MySQL은 날짜를 입력할 때 비교적 유연한(완화된) 형식을 허용합니다. 즉, 날짜의 각 부분(연도, 월, 일) 사이에 어떤 구두점 문자든 자유롭게 사용할 수 있습니다. 이러한 특성 덕분에 개발자는 다양한 형태의 날짜 문자열을 그대로 사용하더라도 MySQL이 올바르게 인식하고 처리해 줍니다.
다양한 구두점 문자 예시
아래 예시에서 볼 수 있듯이, 슬래시(/), 캐럿(^), 앳(@), 더하기(+) 등 어떤 구두점을 사용하든 MySQL은 모두 동일한 날짜 값으로 해석합니다.
mysql> Select date ('2016/10/20');
+---------------------+
| date ('2016/10/20') |
+---------------------+
| 2016-10-20 |
+---------------------+
1 row in set (0.00 sec)
mysql> Select date('2016^10^20');
+--------------------+
| date('2016^10^20') |
+--------------------+
| 2016-10-20 |
+--------------------+
1 row in set (0.00 sec)
mysql> Select date ('2016@10@20');
+---------------------+
| date ('2016@10@20') |
+---------------------+
| 2016-10-20 |
+---------------------+
1 row in set (0.00 sec)
mysql> Select date ('2016+10+20');
+---------------------+
| date ('2016+10+20') |
+---------------------+
| 2016-10-20 |
+---------------------+
1 row in set (0.00 sec)결과 분석
위 네 가지 예시 모두 입력 형식은 서로 다르지만, 결과값은 모두 2016-10-20으로 동일하게 출력됩니다. 이는 MySQL이 날짜 부분 사이의 구두점 문자를 단순히 구분 기호(delimiter)로만 취급하기 때문입니다.
참고 사항
이러한 유연한 형식은 DATE() 함수뿐만 아니라 날짜와 시간을 함께 다루는 DATETIME 값에도 적용됩니다. 다만, 실무에서는 가독성과 표준화를 위해 일반적으로 하이픈(-) 또는 슬래시(/)를 사용하는 것이 권장됩니다. 또한 국제 표준인 ISO 8601 형식(YYYY-MM-DD)을 따르면 다른 시스템과의 데이터 호환성 측면에서도 유리합니다.