Home
home
🏡 홈
home

[MySQL] now() sysdate() 의 차이

분류
개발지식
태그
MySQL
작성자
작성일
2024/02/08 01:12
MySQL 에서 현재시각을 구할때 주로 사용하는 함수로 now() sysdate() 가 있습니다. 자주 사용하는 문법인데 의외로 차이점을 모르고 사용하는 경우가 많습니다.

NOW() SYSDATE() 차이점은 뭘까 ?

NOW() : MySQL 서버의 시간을 가져오는 함수 - 쿼리문이 실행되는 시점의 시간 반환
SELECT NOW();
SQL
복사
SYSDATE() : 호출되는 시점의 시간을 반환
SELECT SYSDATE();
SQL
복사
CURRENT_TIMESTAMP : MySQL의 NOW()와 동일 - 표준SQL
SELECT CURRENT_TIMESTAMP;
SQL
복사

실제 테스트해보기

SELECT NOW() , SYSDATE() , SLEEP(2) -- 의도적으로 2초 딜레이 주기 , NOW() , SYSDATE();
SQL
복사
결과 :
테스트결과로 NOW()는 트랜잭션 호출단위, SYSDATE()는 함수호출 단위로 현재시각을 구하는걸 알 수 있다.
NOW()는 쿼리문 실행 최초 시간이 출력되며, SYSDATE()호출시점의 시간을 출력하는걸 볼 수 있다.

사용시 주의할 점

꼭 필요한 상황이 아닌경우 SYSDATE() 보다는 NOW() 의 사용을 권장한다.
인덱스를 타지못하고 풀스캔을 할 가능성이 크다.
이 차이는 데이터가 많아지고 복잡해질 수록 큰 문제를 일으킨다.