MySQL 5.6.4 이전 버전에서는 밀리초/마이크로초 단위의 시간 정밀도를 지원하지 않았습니다. 하지만 최신 버전의 MySQL에서는 TIMESTAMP, DATETIME, TIME 타입에 대해 밀리초/마이크로초 정밀도를 공식적으로 지원합니다.
MySQL 공식 발표 내용
MySQL 공식 문서에는 다음과 같이 명시되어 있습니다.
“MySQL은 이제 TIME, DATETIME, TIMESTAMP 값에 대해 소수 초(fractional seconds)를 지원하며, 최대 마이크로초(microsecond) 정밀도까지 표현할 수 있습니다.”
MySQL 버전 확인 방법
현재 시스템에 설치된 MySQL 버전은 version() 함수를 사용해 간단히 확인할 수 있습니다.
mysql> SELECT version();
실행 결과는 다음과 같습니다.
+-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.01 sec)
DATEDIFF로 날짜 차이 확인하기
두 날짜 간의 차이를 계산하는 DATEDIFF 함수의 기본 사용 예시는 다음과 같습니다.
mysql> SELECT DATEDIFF(now(),now());
출력 결과
+-----------------------+ | DATEDIFF(now(),now()) | +-----------------------+ | 0 | +-----------------------+ 1 row in set (0.03 sec)
마이크로초 정밀도로 현재 시간 조회하기
now() 함수에 인자 6을 전달하면 마이크로초까지 포함된 현재 시간을 조회할 수 있습니다.
mysql> SELECT now(6);
다음은 마이크로초 단위까지 출력된 결과입니다.
+----------------------------+ | now(6) | +----------------------------+ | 2018-11-11 17:13:25.485429 | +----------------------------+ 1 row in set (0.00 sec)
이처럼 MySQL 5.6.4 이상 버전에서는 FSP(Fractional Seconds Precision) 매개변수를 활용해 TIME, DATETIME, TIMESTAMP 컬럼과 날짜·시간 함수에서 소수 초 정밀도를 자유롭게 다룰 수 있습니다. 참고로 FSP 값은 0~6 사이로 설정할 수 있으며, 6이 가장 높은 마이크로초 정밀도를 의미합니다.