날짜 및 시간 데이터 형식 및 함수(Transact-SQL)Date and Time Data Types and Functions (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2012부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목의 섹션에서는 Transact-SQLTransact-SQL의 모든 날짜/시간 데이터 형식 및 함수를 다룹니다.The sections in this topic cover all Transact-SQLTransact-SQL date and time data types and functions.

날짜 및 시간 데이터 형식Date and Time data types

다음 표에 Transact-SQLTransact-SQL의 날짜 및 시간 데이터 형식이 나와 있습니다.The Transact-SQLTransact-SQL date and time data types are listed in the following table:

데이터 형식Data type 형식Format 범위Range 정확도Accuracy 저장소 크기(바이트)Storage size (bytes) 사용자 정의 초 소수 부분 자릿수User-defined fractional second precision 표준 시간대 오프셋Time zone offset
timetime hh:mm:ss[.nnnnnnn]hh:mm:ss[.nnnnnnn] 00:00:00.0000000부터 23:59:59.9999999까지00:00:00.0000000 through 23:59:59.9999999 100나노초100 nanoseconds 3 ~ 53 to 5 Yes 아니요No
datedate YYYY-MM-DDYYYY-MM-DD 0001-01-01부터 31.12.99까지0001-01-01 through 9999-12-31 1일1 day 33 아니요No 아니요No
smalldatetimesmalldatetime YYYY-MM-DD hh:mm:ssYYYY-MM-DD hh:mm:ss 1900-01-01부터 2079-06-06까지1900-01-01 through 2079-06-06 1분1 minute 44 아니요No 아니요No
datetimedatetime YYYY-MM-DD hh:mm:ss[.nnn]YYYY-MM-DD hh:mm:ss[.nnn] 1753-01-01부터 9999-12-31까지1753-01-01 through 9999-12-31 0.00333초0.00333 second 88 아니요No 아니요No
datetime2datetime2 YYYY-MM-DD hh:mm:ss[.nnnnnnn]YYYY-MM-DD hh:mm:ss[.nnnnnnn] 0001-01-01 00:00:00.0000000부터 9999-12-31 23:59:59.9999999까지0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 100나노초100 nanoseconds 6 ~ 86 to 8 Yes 아니요No
datetimeoffsetdatetimeoffset YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mmYYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm 0001-01-01 00:00:00.0000000부터 9999-12-31 23:59:59.9999999까지(UTC)0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 (in UTC) 100나노초100 nanoseconds 8 ~ 108 to 10 Yes Yes

참고

Transact-SQLTransact-SQL rowversion 데이터 형식은 날짜 또는 시간 데이터 형식이 아닙니다.The Transact-SQLTransact-SQL rowversion data type is not a date or time data type. timestamprowversion에 사용되지 않는 동의어입니다.timestamp is a deprecated synonym for rowversion.

날짜 및 시간 함수Date and Time functions

다음 표에서는 Transact-SQLTransact-SQL 날짜 및 시간 함수를 나열합니다.The following tables list the Transact-SQLTransact-SQL date and time functions. 결정성에 대한 자세한 내용은 결정적 함수 및 비결정적 함수를 참조하세요.See Deterministic and Nondeterministic Functions for more information about determinism.

시스템 날짜 및 시간 값을 반환하는 함수Function That Return System Date and Time Values

Transact-SQLTransact-SQL은 모든 시스템 날짜 및 시간 값을 SQL ServerSQL Server 인스턴스가 실행 중인 컴퓨터 운영 체제에서 가져옵니다. derives all system date and time values from the operating system of the computer on which the instance of SQL ServerSQL Server runs.

정밀도가 높은 시스템 날짜 및 시간 함수Higher-Precision System Date and Time Functions

SQL Server 2017SQL Server 2017에서는 GetSystemTimeAsFileTime() Windows API를 사용하여 날짜 및 시간 값을 가져옵니다. derives the date and time values through use of the GetSystemTimeAsFileTime() Windows API. 정확도는 SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 하드웨어와 Windows 버전에 따라 달라집니다.The accuracy depends on the computer hardware and version of Windows on which the instance of SQL ServerSQL Server running. 이 API의 정밀도는 100나노초에 고정되어 있습니다.This API has a precision fixed at 100 nanoseconds. 정확도를 확인하려면 GetSystemTimeAdjustment() Windows API를 사용합니다.Use the GetSystemTimeAdjustment() Windows API to determine the accuracy.

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
SYSDATETIMESYSDATETIME SYSDATETIME ()SYSDATETIME () SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime2(7) 값을 반환합니다.Returns a datetime2(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. 반환 값에는 표준 시간대 오프셋이 포함되지 않습니다.The returned value does not include the time zone offset. datetime2(7)datetime2(7) 비결정적Nondeterministic
SYSDATETIMEOFFSETSYSDATETIMEOFFSET SYSDATETIMEOFFSET ( )SYSDATETIMEOFFSET ( ) SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetimeoffset(7) 값을 반환합니다.Returns a datetimeoffset(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. 반환 값에는 표준 시간대 오프셋이 포함됩니다.The returned value includes the time zone offset. datetimeoffset(7)datetimeoffset(7) 비결정적Nondeterministic
SYSUTCDATETIMESYSUTCDATETIME SYSUTCDATETIME ( )SYSUTCDATETIME ( ) SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime2(7) 값을 반환합니다.Returns a datetime2(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server is running. 함수는 날짜와 시간 값을 UTC 시간(Coordinated Universal Time)으로 반환합니다.The function returns the date and time values as UTC time (Coordinated Universal Time). datetime2(7)datetime2(7) 비결정적Nondeterministic

정밀도가 낮은 시스템 날짜 및 시간 함수Lower-Precision System Date and Time Functions

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
CURRENT_TIMESTAMPCURRENT_TIMESTAMP CURRENT_TIMESTAMPCURRENT_TIMESTAMP SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime 값을 반환합니다.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. 반환 값에는 표준 시간대 오프셋이 포함되지 않습니다.The returned value does not include the time zone offset. datetimedatetime 비결정적Nondeterministic
GETDATEGETDATE GETDATE ( )GETDATE ( ) SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime 값을 반환합니다.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. 반환 값에는 표준 시간대 오프셋이 포함되지 않습니다.The returned value does not include the time zone offset. datetimedatetime 비결정적Nondeterministic
GETUTCDATEGETUTCDATE GETUTCDATE ( )GETUTCDATE ( ) SQL ServerSQL Server 인스턴스가 실행되고 있는 컴퓨터의 날짜와 시간이 포함된 datetime 값을 반환합니다.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. 함수는 날짜와 시간 값을 UTC 시간(Coordinated Universal Time)으로 반환합니다.The function returns the date and time values as UTC time (Coordinated Universal Time). datetimedatetime 비결정적Nondeterministic

날짜 및 시간 부분을 반환하는 함수Functions That Return Date and Time Parts

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
DATENAMEDATENAME DATENAME ( datepart , date )DATENAME ( datepart , date ) 지정한 날짜에서 특정 datepart를 나타내는 문자열을 반환합니다.Returns a character string representing the specified datepart of the specified date. nvarcharnvarchar 비결정적Nondeterministic
DATEPARTDATEPART DATEPART ( datepart , date )DATEPART ( datepart , date ) 지정한 date에서 특정 datepart를 나타내는 정수를 반환합니다.Returns an integer representing the specified datepart of the specified date. intint 비결정적Nondeterministic
DAYDAY DAY ( date )DAY ( date ) 지정한 date에서 일 부분을 나타내는 정수를 반환합니다.Returns an integer representing the day part of the specified date. intint 결정적Deterministic
MONTHMONTH MONTH ( date )MONTH ( date ) 지정한 date에서 월 부분을 나타내는 정수를 반환합니다.Returns an integer representing the month part of a specified date. intint 결정적Deterministic
YEARYEAR YEAR ( date )YEAR ( date ) 지정한 date에서 연도 부분을 나타내는 정수를 반환합니다.Returns an integer representing the year part of a specified date. intint 결정적Deterministic

해당 부분에서 날짜 및 시간 값을 반환하는 함수Functions That Return Date and Time Values from Their Parts

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
DATEFROMPARTSDATEFROMPARTS DATEFROMPARTS ( year, month, day )DATEFROMPARTS ( year, month, day ) 지정된 년, 월, 일에 대한 date 값을 반환합니다.Returns a date value for the specified year, month, and day. datedate 결정적Deterministic
DATETIME2FROMPARTSDATETIME2FROMPARTS DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision)DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) 지정된 전체 자릿수를 사용하여 지정된 날짜 및 시간에 대한 datetime2 값을 반환합니다.Returns a datetime2 value for the specified date and time, with the specified precision. datetime2( precision )datetime2( precision ) 결정적Deterministic
DATETIMEFROMPARTSDATETIMEFROMPARTS DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds)DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) 지정된 날짜 및 시간에 대한 datetime 값을 반환합니다.Returns a datetime value for the specified date and time. datetimedatetime 결정적Deterministic
DATETIMEOFFSETFROMPARTSDATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision)DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) 지정된 오프셋 및 전체 자릿수를 사용하여 지정된 날짜 및 시간에 대한 datetimeoffset 값을 반환합니다.Returns a datetimeoffset value for the specified date and time, with the specified offsets and precision. datetimeoffset( precision )datetimeoffset( precision ) 결정적Deterministic
SMALLDATETIMEFROMPARTSSMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute )SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) 지정된 날짜 및 시간에 대한 smalldatetime 값을 반환합니다.Returns a smalldatetime value for the specified date and time. smalldatetimesmalldatetime 결정적Deterministic
TIMEFROMPARTSTIMEFROMPARTS TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) 지정한 전체 자릿수를 사용하여 지정한 시간에 대한 time 값을 반환합니다.Returns a time value for the specified time, with the specified precision. time( precision )time( precision ) 결정적Deterministic

날짜 및 시간 차이 값을 반환하는 함수Functions That Return Date and Time Difference Values

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
DATEDIFFDATEDIFF DATEDIFF ( datepart , startdate , enddate )DATEDIFF ( datepart , startdate , enddate ) 지정된 두 날짜 간에 교차되는 날짜 또는 시간 datepart 경계의 수를 반환합니다.Returns the number of date or time datepart boundaries, crossed between two specified dates. intint 결정적Deterministic
DATEDIFF_BIGDATEDIFF_BIG DATEDIFF_BIG ( datepart , startdate , enddate )DATEDIFF_BIG ( datepart , startdate , enddate ) 지정된 두 날짜 간에 교차되는 날짜 또는 시간 datepart 경계의 수를 반환합니다.Returns the number of date or time datepart boundaries, crossed between two specified dates. bigintbigint 결정적Deterministic

날짜 및 시간 값을 수정하는 함수Functions That Modify Date and Time Values

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
DATEADDDATEADD DATEADD (datepart , number , date )DATEADD (datepart , number , date ) 지정된 date의 지정된 datepart에 간격을 더하여 새 datetime 값을 반환합니다.Returns a new datetime value by adding an interval to the specified datepart of the specified date. date 인수의 데이터 형식The data type of the date argument 결정적Deterministic
EOMONTHEOMONTH EOMONTH ( start_date [, month_to_add ] )EOMONTH ( start_date [, month_to_add ] ) 선택 사항인 오프셋 옵션을 사용하여 지정한 날짜가 포함된 달의 마지막 날을 반환합니다.Returns the last day of the month containing the specified date, with an optional offset. 반환 유형은 start_date 인수 형식이거나 date 데이터 형식입니다.Return type is the type of the start_date argument, or alternately, the date data type. 결정적Deterministic
SWITCHOFFSETSWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET , time_zone)SWITCHOFFSET (DATETIMEOFFSET , time_zone) SWITCHOFFSET은 DATETIMEOFFSET 값의 표준 시간대 오프셋을 변경하고 UTC 값을 유지합니다.SWITCHOFFSET changes the time zone offset of a DATETIMEOFFSET value, and preserves the UTC value. datetimeoffsetDATETIMEOFFSET의 소수 자릿수로 표시datetimeoffset with the fractional precision of the DATETIMEOFFSET 결정적Deterministic
TODATETIMEOFFSETTODATETIMEOFFSET TODATETIMEOFFSET (expression , time_zone)TODATETIMEOFFSET (expression , time_zone) TODATETIMEOFFSET은 datetime2 값을 datetimeoffset 값으로 변환합니다.TODATETIMEOFFSET transforms a datetime2 value into a datetimeoffset value. TODATETIMEOFFSET은 datetime2 값을 지정된 time_zone의 현지 시간으로 해석합니다.TODATETIMEOFFSET interprets the datetime2 value in local time, for the specified time_zone. datetimeoffsetdatetime 인수의 소수 자릿수로 표시datetimeoffset with the fractional precision of the datetime argument 결정적Deterministic

세션 형식 함수를 설정 또는 반환하는 함수Functions That Set or Return Session Format Functions

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
@@DATEFIRST@@DATEFIRST @@DATEFIRST@@DATEFIRST 세션에 대한 SET DATEFIRST의 현재 값을 반환합니다.Returns the current value, for the session, of SET DATEFIRST. tinyinttinyint 비결정적Nondeterministic
SET DATEFIRSTSET DATEFIRST SET DATEFIRST { number | @number_var }SET DATEFIRST { number | @number_var } 일주일의 시작 요일을 1부터 7까지의 숫자로 설정합니다.Sets the first day of the week to a number from 1 through 7. 해당 사항 없음Not applicable 해당 사항 없음Not applicable
SET DATEFORMATSET DATEFORMAT SET DATEFORMAT { format | @format_var }SET DATEFORMAT { format | @format_var } datetime 또는 smalldatetime 데이터를 입력할 때 날짜 부분의 순서(월/일/년도)를 설정합니다.Sets the order of the dateparts (month/day/year) for entering datetime or smalldatetime data. 해당 사항 없음Not applicable 해당 사항 없음Not applicable
@@LANGUAGE@@LANGUAGE @@LANGUAGE@@LANGUAGE 현재 사용 중인 언어의 이름을 반환합니다.Returns the name of the language in current used. @@LANGUAGE는 날짜 또는 시간 함수가 아닙니다.@@LANGUAGE is not a date or time function. 하지만 언어 설정은 날짜 함수의 출력에 영향을 줄 수 있습니다.However, the language setting can affect the output of date functions. 해당 사항 없음Not applicable 해당 사항 없음Not applicable
SET LANGUAGESET LANGUAGE SET LANGUAGE { [ N ] 'language' | @language_var }SET LANGUAGE { [ N ] 'language' | @language_var } 세션 및 시스템 메시지에 대한 언어 환경을 설정합니다.Sets the language environment for the session and system messages. SET LANGUAGE는 날짜 또는 시간 함수가 아닙니다.SET LANGUAGE is not a date or time function. 하지만 언어 설정은 날짜 함수의 출력에 영향을 줍니다.However, the language setting affects the output of date functions. 해당 사항 없음Not applicable 해당 사항 없음Not applicable
sp_helplanguagesp_helplanguage sp_helplanguage [ [ @language = ] 'language' ]sp_helplanguage [ [ @language = ] 'language' ] 지원되는 모든 언어의 날짜 형식에 대한 정보를 반환합니다.Returns information about date formats of all supported languages. sp_helplanguage는 날짜 또는 시간 저장 프로시저가 아닙니다.sp_helplanguage is not a date or time stored procedure. 하지만 언어 설정은 날짜 함수의 출력에 영향을 줍니다.However, the language setting affects the output of date functions. 해당 사항 없음Not applicable 해당 사항 없음Not applicable

날짜 및 시간 값 유효성 검사 함수Functions That Validate Date and Time Values

함수Function 구문Syntax 반환 값Return value 반환 데이터 형식Return data type 결정성Determinism
ISDATEISDATE ISDATE ( expression )ISDATE ( expression ) datetime 또는 smalldatetime 입력 식이 유효한 날짜 또는 시간 값인지 여부를 확인합니다.Determines whether a datetime or smalldatetime input expression has a valid date or time value. intint ISDATE는 CONVERT 함수와 함께 사용되고 CONVERT 스타일 매개 변수가 지정되고 스타일이 0, 100, 9 또는 109가 아닌 경우에만 결정적입니다.ISDATE is deterministic only used with the CONVERT function, when the CONVERT style parameter is specified, and when style is not equal to 0, 100, 9, or 109.

날짜 및 시간 관련 토픽Date and time-related topics

항목Topic 설명Description
CAST 및 CONVERT(Transact-SQL)CAST and CONVERT (Transact-SQL) 문자열 리터럴과 다른 날짜 및 시간 형식 간의 날짜/시간 값 변환에 대한 정보를 제공합니다.Provides information about the conversion of date and time values to and from string literals, and other date and time formats.
국가별 Transact-SQL 문 작성Write International Transact-SQL Statements Transact-SQLTransact-SQL 문을 사용하거나 여러 언어를 지원하는 데이터베이스 및 데이터베이스 응용 프로그램의 언어 간 이식성에 대한 지침을 제공합니다.Provides guidelines for portability of databases and database applications that use Transact-SQLTransact-SQL statements from one language to another, or that support multiple languages.
ODBC 스칼라 함수 (Transact-SQL)ODBC Scalar Functions (Transact-SQL) Transact-SQLTransact-SQL 문에서 사용할 수 있는 ODBC 스칼라 함수에 대한 정보를 제공합니다.Provides information about ODBC scalar functions available for use in Transact-SQLTransact-SQL statements. 여기에는 ODBC 날짜 및 시간 함수가 포함됩니다.This includes ODBC date and time functions.
AT TIME ZONE(Transact-SQL)AT TIME ZONE (Transact-SQL) 표준 시간대 변환 기능을 제공합니다.Provides time zone conversion.

관련 항목:See also

함수Functions
데이터 형식(Transact-SQL)Data Types (Transact-SQL)