SYSDATETIME(Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウスMicrosoft Fabric の SQL データベース

SYSDATETIME Transact-SQL(T-SQL)関数は、SQL Serverインスタンスが動作しているコンピュータの日付と時刻を含むdatetime2(7)の値を返します。

注意

SYSDATETIME と SYSUTCDATETIME は、 GETDATE や GETUTCDATEよりも秒の小数部の精度が高くなります。 SYSDATETIMEOFFSET には、システム タイム ゾーン オフセットが含まれます。 SYSDATETIME、 SYSUTCDATETIME、 SYSDATETIMEOFFSET は任意の日付と時間型の変数に割り当てることができます。

Azure Synapse AnalyticsはUTCをフォローしています。 UTC以外のタイムゾーンで日付と時間情報を解釈する必要がある場合は、Azure Synapse AnalyticsでATタイムゾーンを使いましょう。

注意

Azure SQL DatabaseおよびMicrosoft FabricのSQLデータベースは、デフォルトのタイムゾーンをユニバーサルコーディネッドタイム(UTC)から変更することをサポートしています。 データベースやセッションレベルでタイムゾーンを変更すると、この関数は設定されたタイムゾーン値に基づいてローカル時間を返します。 詳細については、ALTER DATABASE SCOPED CONFIGURATIONおよびタイムゾーンSETをご覧ください。

Transact-SQL のすべての日付と時刻のデータ型と関数の概要については日付と時刻のデータ型と関数に関するページを参照してください。

Transact-SQL 構文表記規則

構文

SYSDATETIME ( )

戻り値の型

datetime2(7)

解説

Transact-SQL 文は、datetime2(7)の表現を参照できる場所であれば、どこでも SYSDATETIME を参照できます。

SYSDATETIME は非決定的関数です。 この関数を参照するビューや式を列でインデックスすることはできません。

注意

SQL ServerはGetSystemTimeAsFileTime() Windows APIを使って日付と時刻の値を取得します。 精度は、SQL Server のインスタンスが実行されているコンピューター ハードウェアおよび Windows のバージョンによって異なります。 この API の精度は 100 ナノ秒で固定されます。 GetSystemTimeAdjustment() Windows APIを使って精度を判断できます。

例

次の例では、現在の日付と時刻を返す 6 つの SQL Server システム関数を使用して、日付、時刻、またはその両方を取得しています。 値は順番に返されるため、秒の小数部が異なる可能性があります。

これらの例では、現在の日付が2026年4月30日であると仮定します。

A. 現在のシステム日付と時刻を取得する

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

結果セットは次のとおりです。

SYSDATETIME()        2026-09-01 16:15:37.7418724
SYSDATETIMEOFFSET()  2026-09-01 16:15:37.7418724 -06:00
SYSUTCDATETIME()     2026-09-01 22:15:37.7418724
CURRENT_TIMESTAMP    2026-09-01 16:15:37.740
GETDATE()            2026-09-01 16:15:37.740
GETUTCDATE()         2026-09-01 22:15:37.740
CURRENT_DATE         2026-09-01

B. 現在のシステム日付を取得する

次の例では、日付と時刻の値を 日付 データ型に変換する方法を示します。

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

結果セットは次のとおりです。

SYSDATETIME()        2026-09-01
SYSDATETIMEOFFSET()  2026-09-01
SYSUTCDATETIME()     2026-09-01
CURRENT_TIMESTAMP    2026-09-01
GETDATE()            2026-09-01
GETUTCDATE()         2026-09-01
CURRENT_DATE         2026-09-01

C. 現在のシステム時刻を取得する

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

結果セットは次のとおりです。

SYSDATETIME()        16:15:37.7418724
SYSDATETIMEOFFSET()  16:15:37.7418724
SYSUTCDATETIME()     22:15:37.7418724
CURRENT_TIMESTAMP    16:15:37.740
GETDATE()            16:15:37.740
GETUTCDATE()         22:15:37.740

例: Azure Synapse Analytics

D. 現在のシステム日付と時刻を取得する

SELECT SYSDATETIME();

結果セットは次のとおりです。

--------------------------
4/30/2026 1:10:02 PM