본문 바로가기
IT_Developers/MySQL

MySQL - now(), sysdate() 차이

by 고코더 2021. 11. 12.

안녕하세요.

고코더 입니다.

 

 

now(),  sysdate() 너무나도 비슷한 두 함수

1. MySQL을 쓰다보면 현재 시간을 가져올 때, 두 가지 함수가 있습니다. now(), sysdate()입니다. 대부분은 now()를 쓰는 경우가 많지만, 상황에 따라 sysdate()를 사용하는 경우도 발생합니다. 하지만 두 개의 함수는 닮아 있습니다.

select now(),sysdate();

 

2. 해당 SQL을 실행하면 동일한 값이 나타납니다. 흡사 같은 기능의 함수인가 싶지만 아닙니다.

다른 게 있을까?

3. 이번에는 아래 SQL을 실행해보겠습니다. sleep()을 이용하여, 3초 동안 쿼리를 멈춰 세웁니다.

  select sleep(3),now(),sysdate();

 

4. 이번에는 차이가 나타납니다. 3초라는 시간이 차이가 납니다. 

 

차이점은!

5. now()는 실행이 시작되는 시간의 시간으로 고정됩니다. 다시 말하면 실행될 때 시간을 잽니다. 그렇기 때문에 실무에서는 보통 이 함수를 사용해 프로세스 시작 전의 시간을 사용하는 경우가 대부분 입니다.

 

6. sysdate()는 함수가 실행되는 기준으로 시간을 표현합니다. 예를 들면 100초 걸리는 쿼리가 있는데 100초 동안의 변경된 시간을 구하고 싶으면 이 함수를 사용합니다. 

 

7. 정리하면 이렇습니다.

now()는 쿼리가 실행되는 시점을
sysdate()는 함수가 실행되고 끝나는 순간까지의 시점을

댓글