본문 바로가기
  • [성공하는 개발자] - Developer
DataBase/MSSQL

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

by 세인보이 2022. 7. 19.
728x90

 

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 함수를 사용해도 큰 문제는 없다.

 

참조 : https://gent.tistory.com/433?category=874679

728x90