날짜 및 시간 데이터 형식 및 함수(Transact-SQL)
적용 대상: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
이 문서의 섹션에서는 모든 Transact-SQL 날짜 및 시간 데이터 형식과 함수를 다룹니다.
날짜 및 시간 데이터 형식
다음 표에 Transact-SQL의 날짜 및 시간 데이터 형식이 나와 있습니다.
데이터 형식 | 서식 | 범위 | 정확도 | 스토리지 크기(바이트) | 사용자 정의 초 소수 부분 자릿수 | 표준 시간대 오프셋 |
---|---|---|---|---|---|---|
time | hh:mm:ss[.nnnnnnn] | 00:00:00.0000000부터 23:59:59.9999999까지 | 100나노초 | 3 ~ 5 | Yes | 예 |
date | YYYY-MM-DD | 0001-01-01부터 31.12.99까지 | 1일 | 3 | 아니요 | 예 |
smalldatetime | YYYY-MM-DD hh:mm:ss | 1900-01-01부터 2079-06-06까지 | 1분 | 4 | 예 | 예 |
datetime | YYYY-MM-DD hh:mm:ss[.nnn] | 1753-01-01부터 9999-12-31까지 | 0.00333초 | 8 | 아니요 | 예 |
datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] | 0001-01-01 00:00:00.0000000부터 9999-12-31 23:59:59.9999999까지 | 100나노초 | 6 ~ 8 | Yes | 예 |
datetimeoffset | YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm | 0001-01-01 00:00:00.0000000부터 9999-12-31 23:59:59.9999999까지(UTC) | 100나노초 | 8 ~ 10 | 예 | 예 |
참고
Transact-SQL rowversion 데이터 형식은 날짜 또는 시간 데이터 형식이 아닙니다. timestamp는 rowversion에 사용되지 않는 동의어입니다.
날짜 및 시간 함수
다음 표에서는 Transact-SQL 날짜 및 시간 함수를 나열합니다. 결정성에 대한 자세한 내용은 결정적 함수 및 비결정적 함수를 참조하세요.
시스템 날짜 및 시간 값을 반환하는 함수
Transact-SQL은 모든 시스템 날짜 및 시간 값을 SQL Server 인스턴스가 실행 중인 컴퓨터 운영 체제에서 가져옵니다.
정밀도가 높은 시스템 날짜 및 시간 함수
SQL Server 2008(10.0.x)에서부터 데이터베이스 엔진은 GetSystemTimeAsFileTime() Windows API를 사용하여 날짜 및 시간 값을 가져옵니다. 정확도는 SQL Server 인스턴스가 실행되고 있는 컴퓨터의 하드웨어와 Windows 버전에 따라 달라집니다. 이 API의 정밀도는 100나노초에 고정되어 있습니다. 정확도를 확인하려면 GetSystemTimeAdjustment() Windows API를 사용합니다.
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
SYSDATETIME | SYSDATETIME ( ) | SQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime2(7) 값을 반환합니다. 반환 값에는 표준 시간대 오프셋이 포함되지 않습니다. | datetime2(7) | 비결정적 |
SYSDATETIMEOFFSET | SYSDATETIMEOFFSET ( ) | SQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetimeoffset(7) 값을 반환합니다. 반환 값에는 표준 시간대 오프셋이 포함됩니다. | datetimeoffset(7) | 비결정적 |
SYSUTCDATETIME | SYSUTCDATETIME ( ) | SQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime2(7) 값을 반환합니다. 함수는 날짜와 시간 값을 UTC 시간(Coordinated Universal Time)으로 반환합니다. | datetime2(7) | 비결정적 |
정밀도가 낮은 시스템 날짜 및 시간 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
CURRENT_TIMESTAMP | CURRENT_TIMESTAMP | SQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime 값을 반환합니다. 반환 값에는 표준 시간대 오프셋이 포함되지 않습니다. | datetime | 비결정적 |
GETDATE | GETDATE ( ) | SQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime 값을 반환합니다. 반환 값에는 표준 시간대 오프셋이 포함되지 않습니다. | datetime | 비결정적 |
GETUTCDATE | GETUTCDATE ( ) | SQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime 값을 반환합니다. 함수는 날짜와 시간 값을 UTC 시간(Coordinated Universal Time)으로 반환합니다. | datetime | 비결정적 |
날짜 및 시간 부분을 반환하는 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
DATE_BUCKET | DATE_BUCKET ( datepart, number, date, origin ) | origin 매개 변수로 정의된 타임스탬프에서 각 날짜-시간 버킷의 시작에 해당하는 값을 반환하거나, origin 매개 변수가 지정되지 않은 경우 기본 원본 값 1900-01-01 00:00:00.000 을 반환합니다. |
반환 형식은 date에 제공된 인수의 따라 달라집니다. | 비결정적 |
DATENAME | DATENAME ( datepart, date ) | 지정한 날짜에서 특정 datepart를 나타내는 문자열을 반환합니다. | nvarchar | 비결정적 |
DATEPART | DATEPART ( datepart, date ) | 지정한 date에서 특정 datepart를 나타내는 정수를 반환합니다. | int | 비결정적 |
DATETRUNC | DATETRUNC( datepart, date ) | 지정된 datepart로 잘린 입력 날짜를 반환합니다. | 반환 형식은 date에 제공된 인수의 따라 달라집니다. | 비결정적 |
DAY | DAY ( date ) | 지정한 date에서 일 부분을 나타내는 정수를 반환합니다. | int | 명확함 |
MONTH | MONTH ( date ) | 지정한 date에서 월 부분을 나타내는 정수를 반환합니다. | int | 명확함 |
YEAR | YEAR ( date ) | 지정한 date에서 연도 부분을 나타내는 정수를 반환합니다. | int | 명확함 |
해당 부분에서 날짜 및 시간 값을 반환하는 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
DATEFROMPARTS | DATEFROMPARTS ( year, month, day ) | 지정된 년, 월, 일에 대한 date 값을 반환합니다. | date | 명확함 |
DATETIME2FROMPARTS | DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) | 지정된 전체 자릿수를 사용하여 지정된 날짜 및 시간에 대한 datetime2 값을 반환합니다. | datetime2( precision ) | 명확함 |
DATETIMEFROMPARTS | DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) | 지정된 날짜 및 시간에 대한 datetime 값을 반환합니다. | datetime | 명확함 |
DATETIMEOFFSETFROMPARTS | DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) | 지정된 오프셋 및 전체 자릿수를 사용하여 지정된 날짜 및 시간에 대한 datetimeoffset 값을 반환합니다. | datetimeoffset( precision ) | 명확함 |
SMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) | 지정된 날짜 및 시간에 대한 smalldatetime 값을 반환합니다. | smalldatetime | 명확함 |
TIMEFROMPARTS | TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) | 지정한 전체 자릿수를 사용하여 지정한 시간에 대한 time 값을 반환합니다. | time( precision ) | 명확함 |
날짜 및 시간 차이 값을 반환하는 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
DATEDIFF | DATEDIFF ( datepart, startdate, enddate ) | 지정된 두 날짜 간에 교차되는 날짜 또는 시간 datepart 경계의 수를 반환합니다. | int | 명확함 |
DATEDIFF_BIG | DATEDIFF_BIG ( datepart, startdate, enddate ) | 지정된 두 날짜 간에 교차되는 날짜 또는 시간 datepart 경계의 수를 반환합니다. | bigint | 명확함 |
날짜 및 시간 값을 수정하는 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
DATEADD | DATEADD (datepart, number, date ) | 지정된 date의 지정된 datepart에 간격을 더하여 새 datetime 값을 반환합니다. | date 인수의 데이터 형식 | 명확함 |
EOMONTH | EOMONTH ( start_date [, month_to_add ] ) | 선택 사항인 오프셋 옵션을 사용하여 지정한 날짜가 포함된 달의 마지막 날을 반환합니다. | 반환 유형은 start_date 인수 형식이거나 date 데이터 형식입니다. | 명확함 |
SWITCHOFFSET | SWITCHOFFSET (DATETIMEOFFSET, time_zone) | SWITCHOFFSET은 DATETIMEOFFSET 값의 표준 시간대 오프셋을 변경하고 UTC 값을 유지합니다. | datetimeoffset을 DATETIMEOFFSET의 소수 자릿수로 표시 | 명확함 |
TODATETIMEOFFSET | TODATETIMEOFFSET (expression, time_zone) | TODATETIMEOFFSET은 datetime2 값을 datetimeoffset 값으로 변환합니다. TODATETIMEOFFSET은 datetime2 값을 지정된 time_zone의 현지 시간으로 해석합니다. | datetimeoffset을 datetime 인수의 소수 자릿수로 표시 | 명확함 |
세션 형식 함수를 설정 또는 반환하는 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
@@DATEFIRST | @@DATEFIRST | 세션에 대한 SET DATEFIRST의 현재 값을 반환합니다. | tinyint | 비결정적 |
SET DATEFIRST | SET DATEFIRST { number | @number_var } | 일주일의 시작 요일을 1부터 7까지의 숫자로 설정합니다. | 해당 없음 | 해당 없음 |
SET DATEFORMAT | SET DATEFORMAT { format | @format_var } | datetime 또는 smalldatetime 데이터를 입력할 때 날짜 부분의 순서(월/일/년도)를 설정합니다. | 해당 없음 | 해당 없음 |
@@LANGUAGE | @@LANGUAGE | 현재 사용 중인 언어의 이름을 반환합니다. @@LANGUAGE는 날짜 또는 시간 함수가 아닙니다. 하지만 언어 설정은 날짜 함수의 출력에 영향을 줄 수 있습니다. | 해당 없음 | 해당 없음 |
SET LANGUAGE | SET LANGUAGE { [ N ] 'language' | @language_var } | 세션 및 시스템 메시지에 대한 언어 환경을 설정합니다. SET LANGUAGE는 날짜 또는 시간 함수가 아닙니다. 하지만 언어 설정은 날짜 함수의 출력에 영향을 줍니다. | 해당 없음 | 해당 없음 |
sp_helplanguage | sp_helplanguage [ [ @language = ] 'language' ] | 지원되는 모든 언어의 날짜 형식에 대한 정보를 반환합니다. sp_helplanguage는 날짜 또는 시간 저장 프로시저가 아닙니다. 하지만 언어 설정은 날짜 함수의 출력에 영향을 줍니다. | 해당 없음 | 해당 없음 |
날짜 및 시간 값 유효성 검사 함수
함수 | 구문 | 반환 값 | 반환 데이터 형식 | 결정성 |
---|---|---|---|---|
ISDATE | ISDATE ( expression ) | datetime 또는 smalldatetime 입력 식이 유효한 날짜 또는 시간 값인지 여부를 확인합니다. | int | ISDATE는 CONVERT 함수와 함께 사용되고 CONVERT 스타일 매개 변수가 지정되고 스타일이 0, 100, 9 또는 109가 아닌 경우에만 결정적입니다. |
날짜 및 시간 관련 문서
아티클 | Description |
---|---|
FORMAT | 지정된 형식 및 선택적 culture로 서식이 지정된 값을 반환합니다. 날짜/시간 및 숫자 값을 문자열로 지정하는 로캘 인식 서식 지정에 FORMAT 함수를 사용합니다. |
CAST 및 CONVERT(Transact-SQL) | 문자열 리터럴과 다른 날짜 및 시간 형식 간의 날짜/시간 값 변환에 대한 정보를 제공합니다. |
국가별 Transact-SQL 문 작성 | Transact-SQL 문을 사용하거나 여러 언어를 지원하는 데이터베이스 및 데이터베이스 애플리케이션의 언어 간 이식성에 대한 지침을 제공합니다. |
ODBC 스칼라 함수(Transact-SQL) | Transact-SQL 문에서 사용할 수 있는 ODBC 스칼라 함수에 대한 정보를 제공합니다. 여기에는 ODBC 날짜 및 시간 함수가 포함됩니다. |
AT TIME ZONE(Transact-SQL) | 표준 시간대 변환 기능을 제공합니다. |
참조
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기