適用対象:
SQL Server
Azure SQL データベース
Azure SQL Managed Instance
Azure Synapse Analytics
この記事のこのセクションでは、すべての 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[.nnnnnnnnn] |
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 |
はい |
はい |
Note
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 時刻 (世界協定時刻) として返します。 |
datetime2(7) |
非決定的 |
低精度のシステムの日付と時刻の関数
機能 |
構文 |
戻り値 |
戻り値のデータ型 |
決定性 |
CURRENT_TIMESTAMP |
CURRENT_TIMESTAMP |
SQL Server のインスタンスが実行されているコンピューターの日付と時刻を含む、datetime 値を返します。 戻り値には、タイム ゾーン オフセットが含まれません。 |
datetime |
非決定的 |
GETDATE |
GETDATE ( ) |
SQL Server のインスタンスが実行されているコンピューターの日付と時刻を含む、datetime 値を返します。 戻り値には、タイム ゾーン オフセットが含まれません。 |
datetime |
非決定的 |
GETUTCDATE |
GETUTCDATE ( ) |
SQL Server のインスタンスが実行されているコンピューターの日付と時刻を含む、datetime 値を返します。 この関数は、日付と時刻を UTC 時刻 (世界協定時刻) として返します。 |
datetime |
非決定的 |
CURRENT_DATE |
CURRENT_DATE |
データベース エンジンのインスタンスが実行されているコンピューターの日付のみを含む日付値を返します。 返される値には、時刻とタイム ゾーン オフセットは含まれません。 |
date |
非決定的 |
日付と時刻の部分を返す関数
機能 |
構文 |
戻り値 |
戻り値のデータ型 |
決定性 |
DATE_BUCKET |
DATE_BUCKET ( datepart, number, date, origin ) |
origin パラメーターによって定義されたタイムスタンプから各 date-time バケットの開始に対応する値を返すか、基準のパラメーターが指定されていない場合は、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 ) |
入力の date を指定した datepart に切り詰めて返します。 |
戻り値の型は、date に指定された引数によって異なります。 |
非決定的 |
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) |
Deterministic |
日付と時刻の差の値を返す関数
機能 |
構文 |
戻り値 |
戻り値のデータ型 |
決定性 |
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 | @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 スタイル パラメーターが指定されており、スタイルが 0、100、9、または 109 と等しくないときに、CONVERT 関数と共に使用される場合にのみ決定論的になります。 |
日付と時刻に関連する記事
[アーティクル] |
説明 |
FORMAT |
指定した形式とオプションのカルチャを使用して書式設定された値を返します。 文字列としての日付/時刻と数値のロケール依存の書式指定には FORMAT 関数を使用します。 |
CAST および CONVERT |
文字列リテラルとその他の日時形式間の、日付と時刻の値の変換に関する情報を提供します。 |
国際化に対応した Transact-SQL ステートメントの記述 |
Transact-SQL ステートメントを使用するデータベースやデータベース アプリケーションをある言語から別の言語に移行するためのガイドライン、または複数の言語をサポートするガイドラインを提供します。 |
ODBC スカラー関数 |
Transact-SQL ステートメントで使用できる ODBC スカラー関数に関する情報を提供します。 ODBC の日付と時刻の関数が含まれています。 |
AT TIME ZONE |
タイム ゾーンの変換を提供します。 |
関連するコンテンツ