다음을 통해 공유


GETDATE(Transact-SQL)

현재 데이터베이스 시스템 타임스탬프를 데이터베이스 표준 시간대 오프셋 없이 datetime 값으로 반환합니다. 이 값은 SQL Server 인스턴스를 실행하는 컴퓨터의 운영 체제에서 파생됩니다.

참고

SYSDATETIME 및 SYSUTCDATETIME에는 GETDATE 및 GETUTCDATE보다 많은 소수 자릿수 초의 전체 자릿수가 있습니다.SYSDATETIMEOFFSET에는 시스템 표준 시간대 오프셋이 포함되어 있습니다.SYSDATETIME, SYSUTCDATETIME 및 SYSDATETIMEOFFSET은 모든 날짜 및 시간 유형의 변수에 할당할 수 있습니다.

모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오.

적용 대상: SQL Server(SQL Server 2008 - current version), Windows Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

GETDATE ( )

반환 형식

datetime

주의

Transact-SQL 문은 datetime 식을 참조할 수 있는 모든 곳에서 GETDATE를 참조할 수 있습니다.

GETDATE는 확정적이 아닌 함수입니다. 열에서 이 함수를 참조하는 뷰와 식은 인덱싱될 수 없습니다.

GETDATE() 함수에 SWITCHOFFSET을 사용하면 쿼리 최적화 프로그램에서 GETDATE 값에 대한 정확한 카디널리티 예측을 구할 수 없기 때문에 쿼리 실행이 느려질 수 있습니다. 다음 예와 같이 GETDATE 값을 미리 계산한 후 쿼리에 이 값을 지정하는 것이 좋습니다. 또한 OPTION (RECOMPILE) 쿼리 힌트를 사용하여 다음에 동일한 쿼리를 실행할 때 쿼리 최적화 프로그램에서 쿼리 계획을 다시 컴파일하도록 합니다. 그러면 최적화 프로그램에서 GETDATE()에 대한 정확한 카디널리티 예측을 구해 더 효율적인 쿼리 계획을 생성합니다.

DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00'); 
SELECT * FROM t  
WHERE c1 > @dt OPTION (RECOMPILE);

다음 예에서는 현재 날짜 및 시간을 반환하는 6개의 SQL Server 시스템 함수를 사용하여 시간, 날짜 또는 두 가지 모두 반환합니다. 값은 순차적으로 반환되므로 소수 자릿수 초가 서로 다를 수 있습니다.

1.현재 시스템의 날짜 및 시간 가져오기

SELECT SYSDATETIME()
    ,SYSDATETIMEOFFSET()
    ,SYSUTCDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE()
    ,GETUTCDATE();

결과 집합은 다음과 같습니다.

SYSDATETIME() 2007-04-30 13:10:02.0474381

SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00

SYSUTCDATETIME() 2007-04-30 20:10:02.0474381

CURRENT_TIMESTAMP 2007-04-30 13:10:02.047

GETDATE() 2007-04-30 13:10:02.047

GETUTCDATE() 2007-04-30 20:10:02.047

2.현재 시스템의 날짜 가져오기

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, SYSDATETIMEOFFSET())
    ,CONVERT (date, SYSUTCDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE())
    ,CONVERT (date, GETUTCDATE());

결과 집합은 다음과 같습니다.

SYSDATETIME() 2007-05-03

SYSDATETIMEOFFSET() 2007-05-03

SYSUTCDATETIME() 2007-05-04

CURRENT_TIMESTAMP 2007-05-03

GETDATE() 2007-05-03

GETUTCDATE() 2007-05-04

3.현재 시스템의 시간 가져오기

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, SYSDATETIMEOFFSET())
    ,CONVERT (time, SYSUTCDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE())
    ,CONVERT (time, GETUTCDATE());

결과 집합은 다음과 같습니다.

SYSDATETIME() 13:18:45.3490361

SYSDATETIMEOFFSET()13:18:45.3490361

SYSUTCDATETIME() 20:18:45.3490361

CURRENT_TIMESTAMP 13:18:45.3470000

GETDATE() 13:18:45.3470000

GETUTCDATE() 20:18:45.3470000

참고 항목

참조

CAST 및 CONVERT(Transact-SQL)