SYSUTCDATETIME (Transact-SQL)

SQL Server のインスタンスを実行しているコンピューターの日付と時刻を含む datetime2 値を返します。 日付と時刻は UTC 時刻 (協定世界時) で返されます。 秒の小数部の有効桁数は 1 ~ 7 桁の範囲で指定できます。 既定の有効桁数は 7 桁です。

注意

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

Transact-SQL の日付と時刻のデータ型および関数の概要については、「日付と時刻のデータ型および関数」を参照してください。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

SYSUTCDATETIME ( )

戻り値の型

datetime2

説明

Transact-SQL ステートメントでは、datetime2 式を参照できる場所であればどこでも、SYSUTCDATETIME を参照できます。

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

注意

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

使用例

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

A. 日付および時刻の関数から返される形式を表示する

次の例では、日付と時刻の関数によって返されるさまざまな形式を表示します。

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

以下に結果セットを示します。

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. 日付と時刻を日付に変換する

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

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

以下に結果セットを示します。

2007-04-30

2007-04-30

2007-04-30

2007-04-30

2007-04-30

2007-04-30

C. 日付と時刻の値を時刻に変換する

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

DECLARE @DATETIME DATETIME = GetDate();

DECLARE @TIME TIME

SELECT @TIME = CONVERT(time, @DATETIME)

SELECT @TIME AS 'Time', @DATETIME AS 'Date Time'

以下に結果セットを示します。

Time Date Time

13:49:33.6330000 2009-04-22 13:49:33.633

関連項目

参照

CAST および CONVERT (Transact-SQL)

日付と時刻のデータ型および関数 (Transact-SQL)