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

복합 INTERVAL 단위에 값 하나만 입력하면 MySQL은 어떤 결과를 반환할까?

MySQL에서 복합 INTERVAL 단위(예: year_month, day_hour 등)를 사용할 때, 단위 값 세트에 하나의 값만 작성하면 MySQL은 해당 복합 단위 중 가장 오른쪽에 있는 단위를 기준으로 계산을 수행합니다. 즉, 입력된 단일 값을 가장 오른쪽 단위에 적용한 결과를 반환합니다.

다음 예시를 통해 이 동작을 쉽게 이해할 수 있습니다.

mysql> Select TIMESTAMP('2017-10-22 04:05:36' + INTERVAL '2 ' year_month) AS '월 값만 변경됨';
+--------------------------+
| 월 값만 변경됨            |
+--------------------------+
| 2017-12-22 04:05:36      |
+--------------------------+
1 row in set (0.00 sec)

위 쿼리에서 복합 INTERVAL 단위는 year_month(년_월)입니다. 이 단위의 구성 요소 중 가장 오른쪽에 있는 것은 '월(month)'이므로, 단일 값인 2가 월 값에 적용됩니다. 그 결과 기존 날짜의 월이 10월에서 12월로 변경되어 2017-12-22 04:05:36이 반환된 것을 확인할 수 있습니다.

핵심 정리

  • 복합 INTERVAL 단위에 값 하나만 제공하면, MySQL은 가장 오른쪽 단위에만 그 값을 적용합니다.
  • 나머지 왼쪽 단위(예: 위 예시의 '년')는 변경되지 않고 원래 값을 유지합니다.
  • 두 단위를 모두 반영하려면 값 세트에 두 개의 값을 공백 없이 붙여서 입력해야 합니다(예: '1_2' 형식).