日付と時刻のデータ型および関数 (Transact-SQL)
[アーティクル] 08/09/2024
18 人の共同作成者
フィードバック
この記事の内容
適用対象: 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
タイム ゾーンの変換を提供します。
関連するコンテンツ