SYSDATE( )
SYSDATE() 함수는 현재 날짜와 시각을 반환합니다. 같은 기능을 수행하는 NOW() 함수가 있죠. SYSDATE() 함수는 함수를 호출한 시점의 현재 날짜와 시각을 반환하지만, NOW() 함수는 해당 함수를 호출한 문장이 실행된 시점의 현재 날짜와 시각을 반환합니다. 예를 볼까요?
코드 6-34
SELECT SYSDATE(), SLEEP(2), SYSDATE();
SELECT NOW(), SLEEP(2), NOW();
실행결과
SYSDATE() 함수 실행 시
NOW() 함수 실행 시
두 개의 문장이 있는데 하나는 SYSDATE(), 하나는 NOW() 함수를 호출합니다. SLEEP(2)는 2초간 대기한 후 쿼리 결과를 반환합니다. 따라서 이 문장을 실행하면 2초 후에 결과가 반환됩니다. SYSDATE() 함수를 호출하면 첫 번째와 두 번째 SYSDATE() 함수가 반환하는 값이 다릅니다. 첫 번째 결과가 11시 28분 0초이고, 두 번째 결과는 11시 28분 2초입니다. 즉, 첫 번째 SYSDATE() 함수를 호출하고 2초간 대기하다가 두 번째 SYSDATE() 함수를 호출하므로 결과는 2초가 차이 납니다.
두 번째 문장에서는 NOW() 함수의 결괏값이 모두 11시 26분 13초로 동일합니다. SLEEP() 함수 때문에 2초간 대기했는데도 동일한 값을 반환했습니다. 즉, NOW() 함수는 문장 단위로 현재 날짜와 시각을 가져오고, SYSDATE() 함수는 함수를 호출한 시점의 날짜와 시각을 가져오는 것을 알 수 있습니다.