日付と時刻のデータ型および関数 (Transact-SQL)Date and Time Data Types and Functions (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) 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 FormatFormat 範囲Range 精度Accuracy ストレージ サイズ (バイト)Storage size (bytes) ユーザー定義の 1 秒未満の秒の有効桁数User-defined fractional second precision タイム ゾーン オフセットTime zone offset
timetime hh:mm:ss[.nnnnnnn]hh:mm:ss[.nnnnnnn] 00:00:00.0000000 ~ 23:59:59.999999900:00:00.0000000 through 23:59:59.9999999 100 ナノ秒100 nanoseconds 3 から 5 まで3 to 5 はいYes いいえNo
datedate YYYY-MM-DDYYYY-MM-DD 0001-01-01 ~ 31.12.990001-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-061900-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-311753-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.99999990001-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. timestamp は、rowversion の非推奨のシノニムです。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 ServerSQL Server では、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 時刻 (世界協定時刻) として返します。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 時刻 (世界協定時刻) として返します。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 ) 返します、 日付 指定された年、月、および日の値です。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 ) 指定された 2 つの日付間の差を、日付または時刻の 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 ) 指定された 2 つの日付間の差を、日付または時刻の 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. DATETIMEOFFSET の小数部の有効桁数を持つ datetimeoffsetdatetimeoffset 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. datetime 引数の小数部の有効桁数を持つ datetimeoffsetdatetimeoffset 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)