sql >> データベース >  >> RDS >> Sqlserver

SQL ServerのSYSUTCDATETIME()とGETUTCDATE():違いは何ですか?

    SYSUTCDATETIME() およびGETUTCDATE() SQLServerで使用できる2つのT-SQL日付/時刻関数です。これらの関数は、SQLServerのインスタンスが実行されているコンピューターの日付と時刻を返します。どちらの関数も、日付と時刻をUTC時刻(協定世界時)として返します。

    したがって、両方の関数は同じことを行います。ほとんど。

    これら2つの機能の違いは次のとおりです。

    • GETUTCDATE() その値を日時として返します 値。
    • SYSUTCDATETIME() その値をdatetime2として返します 値。

    これは、SYSUTCDATETIME() より多くの秒の精度を提供します。 datetime2 データ型の範囲も日時よりも大きくなっています 。

    各関数によって返される値を示す例を次に示します。

    SELECT 
        GETUTCDATE() AS GETUTCDATE,
        SYSUTCDATETIME() AS SYSUTCDATETIME;

    結果:

    +-------------------------+-----------------------------+
    | GETUTCDATE              | SYSUTCDATETIME              |
    |-------------------------+-----------------------------|
    | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 |
    +-------------------------+-----------------------------+
    

    したがって、これはSYSDATETIME()の違いに似ています。 およびGETDATE()

    どちらを使用すればよいですか?

    datetime2を使用することをお勧めします 日付/時刻の値を使用します。このデータ型はSQL標準に準拠しており、 datetimeよりも移植性があります。 。

    したがって、SYSUTCDATETIME()を使用してください 特別な理由がない限り。


    1. OracleのDBTIMEZONE関数

    2. PostgreSQLをインストールできません:WindowsXPでMicrosoftVC++ランタイムインストーラーを実行するとエラーが発生しました

    3. SQLServerでのトリグラムワイルドカード文字列検索

    4. ORA-29283の解決方法:無効なファイル操作