適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric SQL Database
SYSDATETIMEOFFSET Transact-SQL(T-SQL)関数は、SQL Serverインスタンスが動作しているコンピュータの日付と時刻を含むdatetimeoffset(7)値を返します。 タイム ゾーン オフセットが含まれます。
日付と時刻のすべての Transact-SQL データ型と関数の概要については、「 日付と時刻のデータ型と関数」を参照してください。
構文
SYSDATETIMEOFFSET ( )
戻り値の型
datetimeoffset(7)
解説
Transact-SQL ステートメントでは、datetimeoffset 式を参照できる場所であればどこでも、SYSDATETIMEOFFSET を参照できます。
SYSDATETIMEOFFSET は非決定的関数です。 列でこの関数を参照するビューと式にインデックスを作成することはできません。
注意
SQL Server は、GetSystemTimeAsFileTime() Windows API を使用して日付と時刻の値を取得します。 精度は、SQL Server のインスタンスが実行されているコンピューター ハードウェアおよび Windows のバージョンによって異なります。 この API の精度は 100 ナノ秒で固定されます。 精度は、GetSystemTimeAdjustment() Windows API を使用して確認できます。
例
次の例では、現在の日付と時刻を返す 6 つの SQL Server システム関数を使用して、日付、時刻、またはその両方を取得しています。 値は順番に返されるため、秒の小数部が異なる可能性があります。
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. 日付と時刻を日付に変換する
次の例では、日付と時刻の値を date に変換する方法を示します。
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: 日付と時刻を時間に変換してください
次の例では、日付と時刻の値を time に変換する方法を示します。
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