GETDATE (Transact-SQL)GETDATE (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

として現在のデータベース システムのタイムスタンプを返す、 datetime 、データベース タイム ゾーン オフセットを持たない値。Returns the current database system timestamp as a datetime value without the database time zone offset. この値は、SQL ServerSQL Server のインスタンスが実行されているコンピューターのオペレーティング システムから取得されます。This value is derived from the operating system of the computer on which the instance of SQL ServerSQL Server is running.

注意

1 秒未満の有効桁数で比較すると、SYSDATETIME と SYSUTCDATETIME の方が GETDATE と GETUTCDATE よりも高い精度を得ることができます。SYSDATETIME and SYSUTCDATETIME have more fractional seconds precision than GETDATE and GETUTCDATE. SYSDATETIMEOFFSET には、システムのタイム ゾーン オフセットが含まれます。SYSDATETIMEOFFSET includes the system time zone offset. SYSDATETIME、SYSUTCDATETIME、および SYSDATETIMEOFFSET は、date 型と time 型の任意の変数に割り当てることができます。SYSDATETIME, SYSUTCDATETIME, and SYSDATETIMEOFFSET can be assigned to a variable of any of the date and time types.

Azure SQL Database (Azure SQL Managed Instance を除く) と Azure Synapse Analytics は UTC に従います。Azure SQL Database (with the exception of Azure SQL Managed Instance) and Azure Synapse Analytics follow UTC. UTC 以外のタイム ゾーンの日付と時刻情報を解釈する必要がある場合、Azure SQL Database または Azure Synapse Analytics で AT TIME ZONE を使用します。Use AT TIME ZONE in Azure SQL Database or Azure Synapse Analytics if you need to interpret date and time information in a non-UTC time zone.

すべての Transact-SQLTransact-SQL 日付および時刻のデータ型と関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。For an overview of all Transact-SQLTransact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

GETDATE()

戻り値の型Return Type

datetimedatetime

解説Remarks

Transact-SQLTransact-SQL ステートメントを参照できます GETDATE を参照できる任意の場所、 datetime 式です。statements can refer to GETDATE anywhere they can refer to a datetime expression.

GETDATE は、非決定的関数です。GETDATE is a nondeterministic function. この関数を列内で参照するビューと式には、インデックスを付けることができません。Views and expressions that reference this function in a column cannot be indexed.

GETDATE() 関数で SWITCHOFFSET を使用すると、クエリの実行速度が低下する場合があります。クエリ オプティマイザーでは、GETDATE 値の正確なカーディナリティの推定を取得できないためです。Using SWITCHOFFSET with the function GETDATE() can cause the query to run slowly because the query optimizer is unable to obtain accurate cardinality estimates for the GETDATE value. GETDATE 値を事前計算して、次の例に示すように、クエリでその値を指定することをお勧めします。We recommend that you precompute the GETDATE value and then specify that value in the query as shown in the following example. さらに、OPTION (RECOMPILE) クエリ ヒントを使用して、次に同じクエリが実行されるときに、クエリ オプティマイザーでクエリ プランが強制的に再コンパイルされるようにします。In addition, use the OPTION (RECOMPILE) query hint to force the query optimizer to recompile a query plan the next time the same query is executed. そうすると、オプティマイザーによって、GETDATE() の正確なカーディナリティの推定が取得され、より効率的なクエリ プランが生成されます。The optimizer will then have accurate cardinality estimates for GETDATE() and will produce a more efficient query plan.

DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');
SELECT * FROM t
WHERE c1 > @dt OPTION (RECOMPILE);

Examples

次の例では、現在の日付と時刻を返す 6 つの SQL ServerSQL Server システム関数を使用して、日付、時刻、またはその両方を取得しています。The following examples use the six SQL ServerSQL Server system functions that return current date and time to return the date, time, or both. 値は順番に返されるため、秒の小数部が異なる可能性があります。The values are returned in series; therefore, their fractional seconds might be different.

A.A. 現在のシステム日付と時刻を取得するGetting the current system date and time

SELECT SYSDATETIME()
    ,SYSDATETIMEOFFSET()
    ,SYSUTCDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE()
    ,GETUTCDATE();

結果セットは次のようになります。Here is the result set.

SYSDATETIME()      2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME()   2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP  2007-04-30 13:10:02.047
GETDATE()          2007-04-30 13:10:02.047
GETUTCDATE()       2007-04-30 20:10:02.047

B.B. 現在のシステム日付を取得するGetting the current system date

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, SYSDATETIMEOFFSET())
    ,CONVERT (date, SYSUTCDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE())
    ,CONVERT (date, GETUTCDATE());

結果セットは次のようになります。Here is the result set.

SYSDATETIME()          2007-05-03
SYSDATETIMEOFFSET()    2007-05-03
SYSUTCDATETIME()       2007-05-04
CURRENT_TIMESTAMP      2007-05-03
GETDATE()              2007-05-03
GETUTCDATE()           2007-05-04

C.C. 現在のシステム時刻を取得するGetting the current system time

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, SYSDATETIMEOFFSET())
    ,CONVERT (time, SYSUTCDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE())
    ,CONVERT (time, GETUTCDATE());

結果セットは次のようになります。Here is the result set.

SYSDATETIME()       13:18:45.3490361
SYSDATETIMEOFFSET() 13:18:45.3490361
SYSUTCDATETIME()    20:18:45.3490361
CURRENT_TIMESTAMP   13:18:45.3470000
GETDATE()           13:18:45.3470000
GETUTCDATE()        20:18:45.3470000

例: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse)Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) and Parallel Data WarehouseParallel Data Warehouse

次の例では、現在の日付と時刻を返す 3 つの SQL ServerSQL Server システム関数を使用して、日付、時刻、またはその両方を取得しています。The following examples use the three SQL ServerSQL Server system functions that return current date and time to return the date, time, or both. 値は順番に返されるため、秒の小数部が異なる可能性があります。The values are returned in series; therefore, their fractional seconds might be different.

D.D. 現在のシステム日付と時刻を取得するGetting the current system date and time

SELECT SYSDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE();

E.E. 現在のシステム日付を取得するGetting the current system date

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE());

F.F. 現在のシステム時刻を取得するGetting the current system time

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE());

参照See Also

CAST および CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)