SQL道場 日付時刻関数 GETDATE関数

SQLで現在の日付と時刻を得るGETDATE関数について記載しています。

対応データベース:SQLServer

GETDATE関数の文法

SELECT GETDATE() FROM テーブル
引数なし
返値 datetime 現在の日付が戻ります。

GETDATE関数は現在の日付を戻します。

Transact-SQL ステートメントから、datetime 式を参照できる任意の場所で GETDATE を参照できます。

GETDATE は、非決定的関数です。 この関数を列内で参照するビューと式には、インデックスを付けることができません。

GETDATE() 関数で SWITCHOFFSET を使用すると、クエリの実行速度が低下する場合があります。クエリ オプティマイザーでは、GETDATE 値の正確なカーディナリティの推定を取得できないためです。 GETDATE 値を事前計算して、次の例に示すように、クエリでその値を指定することをお勧めします。 さらに、OPTION (RECOMPILE) クエリ ヒントを使用して、次に同じクエリが実行されるときに、クエリ オプティマイザーでクエリ プランが強制的に再コンパイルされるようにします。 そうすると、オプティマイザーによって、GETDATE() の正確なカーディナリティの推定が取得され、より効率的なクエリ プランが生成されます。

https://learn.microsoft.com/ja-jp/sql/t-sql/functions/getdate-transact-sql?view=sql-server-ver16

1 秒未満の有効桁数で比較すると、SYSDATETIME と SYSUTCDATETIME の方が GETDATE と GETUTCDATE よりも高い精度を得ることができます。 SYSDATETIMEOFFSET には、システムのタイム ゾーン オフセットが含まれます。 SYSDATETIME、SYSUTCDATETIME、および SYSDATETIMEOFFSET は、date 型と time 型の任意の変数に割り当てることができます。

実行例

SQLServerの実行例

/* SQLServer 現在の日付を取得するサンプル */
SELECT GETDATE();
GETDATE関数サンプル実行結果