日付と時刻のデータ型および関数 (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン) YesYesAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics yes

このトピックのセクションでは、すべての Transact-SQLデータ型と関数について説明します。

日付および時刻のデータ型

Transact-SQLデータ型を次の表に示します。

データ型 フォーマット Range 精度 ストレージ サイズ (バイト) ユーザー定義の 1 秒未満の秒の有効桁数 タイム ゾーン オフセット
time hh:mm:ss[.nnnnnnn] 00:00:00.0000000 ~ 23:59:59.9999999 100 ナノ秒 3 から 5 まで はい いいえ
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 はい いいえ
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 2019 (15.x) は、GetSystemTimeAsFileTime() api を使用して日付と時刻の値Windowsします。 精度は、 のインスタンスが実行されているコンピューター WindowsのバージョンSQL Server異なります。 この API の精度は 100 ナノ秒で固定されます。 精度を確認するには、GetSystemTimeAdjustment() Windows API を使用します。

機能 構文 戻り値 戻り値のデータ型 決定性
SYSDATETIME SYSDATETIME () のインスタンスが実行されるコンピューターの日付と時刻を含む datetime2(7) SQL Serverします。 戻り値には、タイム ゾーン オフセットは含まれません。 datetime2(7) 非決定的
SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) のインスタンスが実行されるコンピューターの日付と時刻を含む datetimeoffset(7) 値SQL Serverします。 戻り値にはタイム ゾーン オフセットが含まれます。 datetimeoffset(7) 非決定的
SYSUTCDATETIME SYSUTCDATETIME ( ) インスタンスが実行されているコンピューターの日付と時刻を含む datetime2(7) SQL Server返します。 この関数は、日付と時刻を UTC 時刻 (世界協定時刻) として返します。 datetime2(7) 非決定的

低精度のシステム日付/時刻関数

機能 構文 戻り値 戻り値のデータ型 決定性
CURRENT_TIMESTAMP CURRENT_TIMESTAMP のインスタンスが実行されるコンピューターの日付と時刻を含む datetime 値SQL Serverします。 戻り値には、タイム ゾーン オフセットは含まれません。 datetime 非決定的
GETDATE GETDATE ( ) のインスタンスが実行されるコンピューターの日付と時刻を含む datetime 値SQL Serverします。 戻り値には、タイム ゾーン オフセットは含まれません。 datetime 非決定的
GETUTCDATE GETUTCDATE ( ) のインスタンスが実行されるコンピューターの日付と時刻を含む datetime 値SQL Serverします。 この関数は、日付と時刻を UTC 時刻 (世界協定時刻) として返します。 datetime 非決定的

日付と時刻の要素を返す関数

機能 構文 戻り値 戻り値のデータ型 決定性
DATENAME DATENAME ( datepart , date ) 指定された日付の指定された datepart を表す文字列を返します。 nvarchar 非決定的
DATEPART DATEPART ( datepart , date ) 指定された date の指定された datepart を表す整数を返します。 int 非決定的
DAY DAY ( date ) 指定された date の日の部分を表す整数を返します。 int Deterministic
MONTH MONTH ( date ) 指定された date の月の部分を表す整数を返します。 int Deterministic
YEAR YEAR ( date ) 指定された date の年の部分を表す整数を返します。 int Deterministic

要素から日付と時刻の値を返す関数

機能 構文 戻り値 戻り値のデータ型 決定性
DATEFROMPARTS DATEFROMPARTS ( year, month, day ) 返します、 日付 指定された年、月、および日の値です。 date Deterministic
DATETIME2FROMPARTS DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) 指定された有効桁数を使用して、指定された日付と時刻を表す datetime2 値を返します。 datetime2(precision) Deterministic
DATETIMEFROMPARTS DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) 返します、 datetime 指定した日付と時刻の値です。 datetime Deterministic
DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) 指定されたオフセットおよび有効桁数を使用して、指定された日付と時刻を表す datetimeoffset 値を返します。 datetimeoffset(precision) Deterministic
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) 返します、 smalldatetime 指定した日付と時刻の値です。 smalldatetime Deterministic
TIMEFROMPARTS TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) 指定された有効桁数を使用して、指定された時刻を表す time 値を返します。 time(precision) 決定的

日付と時刻の差の値を返す関数

機能 構文 戻り値 戻り値のデータ型 決定性
DATEDIFF DATEDIFF ( datepart , startdate , enddate ) 指定された 2 つの日付間の差を、日付または時刻の datepart の境界の数値で返します。 int Deterministic
DATEDIFF_BIG DATEDIFF_BIG ( datepart , startdate , enddate ) 指定された 2 つの日付間の差を、日付または時刻の datepart の境界の数値で返します。 bigint Deterministic

日付と時刻の値を変更する関数

機能 構文 戻り値 戻り値のデータ型 決定性
DATEADD DATEADD (datepart , number , date ) 指定された date の指定された datepart に期間を加えた新しい datetime の値を返します。 date 引数のデータ型 Deterministic
EOMONTH EOMONTH ( start_date [, month_to_add ] ) オプションのオフセットを使用して、指定された日付を含んでいる月の最後の日付を返します。 戻り値の型は、start_date 引数型、または date データ型です。 Deterministic
SWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET , time_zone) SWITCHOFFSET は、DATETIMEOFFSET 値のタイム ゾーン オフセットを変更し、UTC 値を保持します。 DATETIMEOFFSET の小数部の有効桁数を持つ datetimeoffset Deterministic
TODATETIMEOFFSET TODATETIMEOFFSET (expression , time_zone) TODATETIMEOFFSET では、datetime2 値が datetimeoffset 値に変換されます。 TODATETIMEOFFSET は、datetime2 値を、指定された time_zone のローカル時刻で解釈します。 datetime 引数の小数部の有効桁数を持つ datetimeoffset Deterministic

セッションの形式の関数を設定または返す関数

機能 構文 戻り値 戻り値のデータ型 決定性
@@DATEFIRST @@DATEFIRST 現在のセッションにおける、SET DATEFIRST の現在の値を返します。 tinyint 非決定的
SET DATEFIRST SET DATEFIRST { number@@ } 週の最初の曜日を 1 から 7 の数値で設定します。 適用なし 適用なし
SET DATEFORMAT SET DATEFORMAT { format@@ } 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 と等しくない場合にのみ決定的関数になります。

日付と時刻に関連したトピック

トピック 説明
FORMAT 指定した形式とオプションのカルチャを使用して書式設定された値を返します。 文字列としての日付/時刻と数値のロケール依存の書式指定には FORMAT 関数を使用します。
CAST および CONVERT (Transact-SQL) 文字列リテラルとその他の日時形式間の、日付と時刻の値の変換に関する情報を提供します。
国際化に対応した Transact-SQL ステートメントの記述 Transact-SQL ステートメントをある言語から別の言語に使用するデータベースおよびデータベース アプリケーションの移植性、または複数の言語をサポートするデータベースとデータベース アプリケーションの移植性に関するガイドラインを提供します。
ODBC スカラー関数 (Transact-SQL) Transact-SQL ステートメントで使用できる ODBC スカラー関数について説明します。 これには、ODBC の日付および時刻の関数が含まれます。
AT TIME ZONE (Transact-SQL) タイム ゾーンの変換を提供します。

関連項目