SYSDATETIME()
関数は、現在の日付と時刻を datetime2(7)として返します。 価値。この値は、SQLServerのインスタンスが実行されているコンピューターのオペレーティングシステムから取得されます。
この記事では、SYSDATETIME()
の例を示します。 関数。他の関数と一緒に使用して、関心のある値を返す方法を含みます。
構文
まず、構文は次のとおりです。
SYSDATETIME ( )
したがって、この関数は実際には引数を受け入れません。引数なしで呼び出すだけです。
例
SELECT
を使用する基本的な例を次に示します。 SYSDATETIME()
から現在の日付と時刻を返すステートメント :
SELECT SYSDATETIME() AS Result;
結果:
+-----------------------------+ | Result | |-----------------------------| | 2018-06-15 23:09:13.5852199 | +-----------------------------+
したがって、前述のように、 datetime2(7)を返します。 価値。 datetime2 データ型は、 datetime よりも日付範囲が広く、デフォルトの分数精度が大きくなっています データ型(GETDATE()
のデータ型 戻り値– SYSDATETIME()とGETDATE():違いは何ですか?)を参照してください。
日付の一部を抽出
戻り値の一部のみが必要な場合は、DATEPART()
を使用できます。 興味のある日時のその部分だけを返します。
例:
SELECT DATEPART(month, SYSDATETIME()) AS Result;
結果:
+----------+ | Result | |----------| | 6 | +----------+
SQLServerで同じ結果を得る方法が複数ある場合があります。 MONTH()
を使用した別の例を次に示します。 機能:
SELECT MONTH(SYSDATETIME()) AS Result;
結果:
+----------+ | Result | |----------| | 6 | +----------+
これらの関数は両方とも当月を返しました。しかし、彼らは月番号を表す整数としてそれらを返しました。
月の名前が必要な場合 代わりに、DATENAME()
を使用できます。 :
SELECT DATENAME(month, SYSDATETIME()) AS Result;
結果:
+----------+ | Result | |----------| | June | +----------+
日付をフォーマットする
他のT-SQL関数を使用して、必要に応じて日付をフォーマットすることもできます。
FORMAT()
の使用例を次に示します。 結果をフォーマットする関数:
SELECT FORMAT(SYSDATETIME(), 'd', 'en-US') AS 'd, en-US', FORMAT(SYSDATETIME(), 'd', 'en-gb') AS 'd, en-gb', FORMAT(SYSDATETIME(), 'D', 'en-US') AS 'D, en-US', FORMAT(SYSDATETIME(), 'D', 'en-gb') AS 'D, en-gb';
結果:
+------------+------------+-----------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-----------------------+--------------| | 6/15/2018 | 15/06/2018 | Friday, June 15, 2018 | 15 June 2018 | +------------+------------+-----------------------+--------------+
SQLServerで日付と時刻をフォーマットする方法のその他の例。
値を増やして違いを見つける
DATEDIFF()
のような関数を使用できます 現在の日付と別の日付の差を返します。
DATEADD()
の使用例を次に示します。 現在の日付に月を追加してから、日数の違いを確認するには:
DECLARE @date1 datetime2 = SYSDATETIME(); DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME()); SELECT DATEDIFF(day, @date1, @date2) AS Result;
結果:
+----------+ | Result | |----------| | 30 | +----------+