DB/MYSQL
SYSDATE vs NOW (SYSDATE 와 NOW 의 차이)
펭귄대장
2019. 11. 2. 09:08
SYSDATE() : SYSDATE() 함수가 호출된 시각
NOW() : NOW() 가 포함된 쿼리(구문(statement))가 호출된 시각
[Ex]
1
2
3
4
5
6
7
|
SELECT
SYSDATE(),
SLEEP(3) AS 'sleep',
SYSDATE(),
NOW(),
SLEEP(3) AS 'sleep',
NOW();
|
cs |
[결과]

[쿼리 한 줄씩 해석]
SELECT
SYSDATE() 함수 호출될 때의 시각 (6:52:28)
SLEEP(3) 3초간 Thread sleep (6:52:31)
SYSDATE() 함수 호출될 때의 시각 (6:52:31)
NOW() 쿼리(구문)가 실행될 때의 시각(6:52:28)
SLEEP(3) 3초간 Thread sleep (6:52:34)
NOW() 쿼리(구문)가 실행될 때의 시각(6:52:28)
※ SYSDATE와 NOW 는 각각 언제 사용해야 하는가?
- 실행결과에 따른 시각이 중요, 이를 저장해야하는 경우 NOW 사용
- 호출된 시각이 중요한 경우 SYSDATE 사용
ex) Spring Batch/Spring Quartz의 경우 Schedule, Job의 실행시각들이 메타테이블에 의해 관리가 되는데(Schedule, Job 관리가 inMemory 방식이 아닌 jdbc 방식인 경우), 쿼리가 끝난 시각이 아닌 호출시점의 시각이 중요하므로 SYSDATE를 사용하여 관리되고 있다.
참고 : https://database.guide/sysdate-vs-now-in-mysql-whats-the-difference/
반응형