[MSSQL] 현재시간 GETDATE()와 SYSDATETIME() 차이

SQL Server에서는 현재 날짜와 시간을 가져오기 위해서는 GETDATE 함수를 사용한다. 다른 데이터베이스의 SYSDATE나 NOW() 함수와 비슷하다.

 

SQL Server 2012부터 SYSDATETIME 함수가 추가되었으며 GETDATE 함수보다 더 정밀한 시간을 반환한다. 아래는 두 함수를 간단하게 비교하여 정리한 내용이다.

 

GETDATE() vs SYSDATETIME()

SELECT GETDATE()     AS [GETDATE]
     , SYSDATETIME() AS [SYSDATETIME]

 

 

GETDATE 함수는 datetime 타입의 밀리초(3자리)를 반환한다.

SYSDATETIME 함수는 datetime2 타입의 100나노초(7자리)를 반환한다.

 

SYSDATETIME 함수가 조금 더 정밀한 시간을 반환하지만, 날짜나 초단위 까지의 값이 필요하다면 GETDATE 함수를 사용해도 동일한 결과를 얻을 수 있다.

 

GETDATE() vs CURRENT_TIMESTAMP

SELECT GETDATE()         AS [GETDATE]
     , CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP]

 

 

GETDATE와 CURRENT_TIMESTAMP 함수는 동일한 결과를 반환한다. CURRENT_TIMESTAMP는 ANSI SQL이기 때문에 다른 데이터베이스에서 동일한게 동작하며, GETDATE 함수는 SQL Server에만 동작하는 함수이다.

 

쿼리문이 차후 다른 데이터베이스로 전환이 될 수 있다면 ANSI SQL 함수를 사용하는 것이 바람직하며, SQL Server에서만 사용할 쿼리문이면 GETDATE 함수를 사용해도 큰 문제는 없다.

 

 

댓글

Designed by JB FACTORY