NOW() SYSDATE()의 차이

# SELECT NOW(); # SELECT SYSDATE();

NOW() SYSDATE()의 차이는 쿼리가 길어질 경우, 출력 되는 시간이 고정되느냐 변하느냐에 따른 차이가 있습니다.

NOW 는 쿼리가 처음 시작되는 시간이 고정되지만 SYSDATE 는 연산할 때 마다 시간이 변합니다.


예를 들어, 한 번에 실행하는 쿼리가 몇 백줄이고, 중간중간에 현재 날짜와 시간을 조회하다고 가정하겠습니다. ( 또는 트랜잭션의 상황 )

이 때 이와 같이 긴 쿼리가 실행 될 때,

그 긴 쿼리( 쿼리 단위 )가 실행 될 때를 기준으로 날짜와 시간을 맞추고 싶다면 NOW를 사용하고,

중간중간 날짜를 조회할 때를 기준으로 각각 날짜와 시간을 사용하고 싶다면 SYSDATE를 사용합니다.


즉, SYSDATE() 함수는 함수가 실행되는 시점의 시각을 반환하지만, NOW()는 하나의 쿼리 단위로 동일한 값을 반환합니다.