日付と時刻のデータ型および関数 (Transact-SQL)
このトピックの以下のセクションでは、日付と時刻に関連して Transact-SQL が備えているすべてのデータ型および関数について概要を紹介します。
日付および時刻データ型
日付と時刻関数
システムの日付と時刻値を取得する関数
日付と時刻の要素を取得する関数
日付と時刻の要素からその値を取得する関数
日付や時刻の差を取得する関数
日付と時刻の値を変更する関数
セッションの形式を設定または取得する関数
日付と時刻の値を検証する関数
日付と時刻に関連したトピック
日付および時刻データ型
Transact-SQL の日付と時刻のデータ型を次の表に示します。
データ型 |
形式 |
範囲 |
精度 |
ストレージ サイズ (バイト単位) |
ユーザー定義の、秒の小数部の有効桁数 |
タイム ゾーン オフセット |
---|---|---|---|---|---|---|
hh:mm:ss[. nnnnnnn] |
00:00:00.0000000 ~ 23:59:59.9999999 |
100 ナノ秒 |
3 ~ 5 |
可 |
不可 |
|
YYYY-MM-DD |
0001-01-01 ~ 9999-12-31 |
1 日 |
3 |
不可 |
不可 |
|
YYYY-MM-DD hh:mm:ss |
1900-01-01 ~ 2079-06-06 |
1 分 |
4 |
不可 |
不可 |
|
YYYY-MM-DD hh:mm:ss[. nnn] |
1753-01-01 ~ 9999-12-31 |
0.00333 秒 |
8 |
不可 |
不可 |
|
YYYY-MM-DD hh:mm:ss[. nnnnnnn] |
0001-01-01 00:00:00.0000000 ~ 9999-12-31 23:59:59.9999999 |
100 ナノ秒 |
6 ~ 8 |
可 |
不可 |
|
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 の日付と時刻の関数を次の表に示します。 決定性の詳細については、「決定的関数と非決定的関数」を参照してください。
システムの日付と時刻値を取得する関数
システムのすべての日付値と時刻値は、SQL Server のインスタンスが実行されているコンピューターのオペレーティング システムから取得されます。
高精度のシステム日付/時刻関数
SQL Server 2012 は、GetSystemTimeAsFileTime() Windows API を使用して日付と時刻の値を取得します。 精度は、SQL Server のインスタンスが実行されているコンピューター ハードウェアおよび Windows のバージョンによって異なります。 この API の精度は 100 ナノ秒で固定されます。 精度は、GetSystemTimeAdjustment() Windows API を使用して確認できます。
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
SYSDATETIME () |
SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetime2(7) 値を返します。 タイム ゾーン オフセットは含まれません。 |
datetime2(7) |
非決定的 |
|
SYSDATETIMEOFFSET ( ) |
SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetimeoffset(7) 値を返します。 タイム ゾーン オフセットが含まれます。 |
datetimeoffset(7) |
非決定的 |
|
SYSUTCDATETIME ( ) |
SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetime2(7) 値を返します。 日付と時刻は UTC 時刻 (協定世界時) で返されます。 |
datetime2(7) |
非決定的 |
低精度のシステム日付/時刻関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
CURRENT_TIMESTAMP |
SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetime 値を返します。 タイム ゾーン オフセットは含まれません。 |
datetime |
非決定的 |
|
GETDATE ( ) |
SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetime 値を返します。 タイム ゾーン オフセットは含まれません。 |
datetime |
非決定的 |
|
GETUTCDATE ( ) |
SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetime 値を返します。 日付と時刻は UTC 時刻 (協定世界時) で返されます。 |
datetime |
非決定的 |
日付と時刻の要素を取得する関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
DATENAME ( datepart , date ) |
指定された日付について、特定の datepart を表す文字列を返します。 |
nvarchar |
非決定的 |
|
DATEPART ( datepart , date ) |
指定された date の特定の datepart を表す整数を返します。 |
int |
非決定的 |
|
DAY ( date ) |
指定された date の日の部分を表す整数を返します。 |
int |
決定的 |
|
MONTH ( date ) |
指定された date の月の部分を表す整数を返します。 |
int |
決定的 |
|
YEAR ( date ) |
指定された date の年の部分を表す整数を返します。 |
int |
決定的 |
日付と時刻の要素からその値を取得する関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
DATEFROMPARTS ( year, month, day ) |
指定された年、月、および日を表す date 値を返します。 |
date |
決定的 |
|
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision ) |
指定された有効桁数を使用して、指定された日付と時刻を表す datetime2 値を返します。 |
datetime2 ( precision ) |
決定的 |
|
DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds ) |
指定された日付と時刻を表す datetime 値を返します。 |
datetime |
決定的 |
|
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision ) |
指定されたオフセットおよび有効桁数を使用して、指定された日付と時刻を表す datetimeoffset 値を返します。 |
datetime ( precision ) |
決定的 |
|
SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) |
指定された日付と時刻を表す smalldatetime 値を返します。 |
smalldatetime |
決定的 |
|
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) |
指定された有効桁数を使用して、指定された時刻を表す time 値を返します。 |
time ( precision ) |
決定的 |
日付や時刻の差を取得する関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
DATEDIFF ( datepart , startdate , enddate ) |
指定された 2 つの日付間の差を、日付または時刻の datepart 単位で返します。 |
int |
決定的 |
日付と時刻の値を変更する関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
DATEADD (datepart , number , date ) |
date の datepart に特定の期間を加えた新しい datetime 型の値を返します。 |
date 引数のデータ型 |
決定的 |
|
EOMONTH ( start_date [, month_to_add ] ) |
オプションのオフセットを使用して、指定された日付を含んでいる月の最後の日付を返します。 |
戻り値の型は start_date 型または datetime2(7) 型です。 |
決定的 |
|
SWITCHOFFSET (DATETIMEOFFSET , time_zone) |
SWITCHOFFSET は、DATETIMEOFFSET の値のタイム ゾーン オフセットを変更し、UTC 値を保持します。 |
datetimeoffset の有効桁数を持つDATETIMEOFFSET |
決定的 |
|
TODATETIMEOFFSET (expression , time_zone) |
TODATETIMEOFFSET は、datetime2 値を datetimeoffset 値に変換します。 datetime2 値は、指定された time_zone のローカル時刻で解釈されます。 |
datetime 引数の有効桁数を持つ datetimeoffset |
決定的 |
セッションの形式を設定または取得する関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
@@DATEFIRST |
現在のセッションにおける、SET DATEFIRST の現在の値を返します。 |
tinyint |
非決定的 |
|
SET DATEFIRST { number |@number_var } |
週の最初の曜日を 1 ~ 7 の数値で設定します。 |
該当なし |
該当なし |
|
SET DATEFORMAT { format |@format_var } |
datetime 型または smalldatetime 型のデータを入力する場合の日付要素 (月、日、年) の順番を設定します。 |
該当なし |
該当なし |
|
@@LANGUAGE |
現在使用されている言語の名前を返します。 @@LANGUAGE は日付または時刻の関数ではありません。 ただし、言語設定は日付関数の出力に影響します。 |
該当なし |
該当なし |
|
SET LANGUAGE { [ N ] 'language' |@language_var } |
セッションおよびシステム メッセージの言語環境を設定します。 SET LANGUAGE は日付または時刻の関数ではありません。 ただし、言語設定は日付関数の出力に影響します。 |
該当なし |
該当なし |
|
sp_helplanguage [ [ @language = ] 'language' ] |
サポートされている言語の日付形式に関する情報を返します。 sp_helplanguage は日付または時刻のストアド プロシージャではありません。 ただし、言語設定は日付関数の出力に影響します。 |
該当なし |
該当なし |
日付と時刻の値を検証する関数
関数 |
構文 |
戻り値 |
戻り値の型 |
決定性 |
---|---|---|---|---|
ISDATE ( expression ) |
datetime または smalldatetime の入力式が有効な日付値または時刻値であるかどうかを調べます。 |
int |
ISDATE は、CONVERT 関数と共に使用され、CONVERT スタイル パラメーターが指定されており、スタイルが 0、100、9、または 109 と等しくない場合にのみ決定的関数になります。 |
日付と時刻に関連したトピック
トピック |
説明 |
---|---|
文字列リテラルとその他の日付/時刻形式間の変換に関する情報を提供します。 |
|
Transact-SQL ステートメントを使用するデータベースやデータベース アプリケーションをある言語から別の言語に移行するためのガイドラインを提供します。 |
|
Transact-SQL ステートメントで使用できる ODBC スカラー関数に関する情報を提供します。 これには、ODBC の日付および時刻の関数が含まれます。 |