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

MySQL은 왜 'INTERVAL 7 DAYS' 대신 'INTERVAL 7 DAY'처럼 단수형 간격을 사용할까요?

MySQL이 단수형 간격 키워드를 요구하는 이유

MySQL의 날짜·시간 연산에서 INTERVAL 단위 키워드가 영어 문법 규칙과 무관하게 반드시 단수형으로 작성되어야 하는 데에는 분명한 이유가 있습니다. MySQL은 내부 파서(parser)가 DAY, HOUR, YEAR 같은 단위 키워드를 고정된 예약어로 처리하기 때문에, 복수형 표현은 문법으로 인식하지 않습니다.

따라서 7 DAYS, 2 HOURS처럼 복수형 간격을 지정하려고 하면 MySQL은 다음과 같은 구문 오류(syntax error)를 반환합니다.

mysql> SELECT '2017-02-25 05:04:30' + INTERVAL 2 DAYS;
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near 'DAYS' at line 1

올바른 사용 방법

단수형 키워드를 사용하면 쿼리가 정상적으로 실행됩니다.

mysql> SELECT '2017-02-25 05:04:30' + INTERVAL 2 DAY;
+---------------------+
| 결과                |
+---------------------+
| 2017-02-27 05:04:30 |
+---------------------+

이 규칙은 YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND 등 모든 시간 단위에 동일하게 적용됩니다. 따라서 MySQL에서 간격을 지정할 때는 영어 문법이 아닌 MySQL의 문법 규격에 맞춰 항상 단수형 키워드를 사용해야 합니다.