SQL Serverでは、T-SQL DATEPART() 関数は、指定された datepartを表す整数を返します 指定された日付 。たとえば、2021-01-07を渡すことができます SQL Serverに年の部分のみを返すようにします(2021 。
時間部分を抽出することもできます。たとえば、2018-06-02 08:24:14.3112042を渡すことができます SQL Serverに1時間の部分のみを返すようにします(8 。
以下の例。
構文
まず、構文。 DATEPART() 構文は次のようになります:
DATEPART ( datepart , date )
datepart dateの一部です (日付または時刻の値)整数が返されます。
例1
これは、日付から年のコンポーネントを返す基本的な例です。
SELECT DATEPART(year, '2021-01-07') AS Result;
結果:
+----------+ | Result | |----------| | 2021 | +----------+
例2
この例では、変数に日付を割り当ててから、DATEPART()の複数のインスタンスを使用します。 その日付のさまざまな部分を取得します。
DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT
DATEPART(year, @date) AS Year,
DATEPART(quarter, @date) AS Quarter,
DATEPART(month, @date) AS Month,
DATEPART(dayofyear, @date) AS 'Day of Year',
DATEPART(day, @date) AS Day,
DATEPART(week, @date) AS Week,
DATEPART(weekday, @date) AS Weekday; 結果:
+--------+-----------+---------+---------------+-------+--------+-----------+ | Year | Quarter | Month | Day of Year | Day | Week | Weekday | |--------+-----------+---------+---------------+-------+--------+-----------| | 2018 | 2 | 6 | 153 | 2 | 22 | 7 | +--------+-----------+---------+---------------+-------+--------+-----------+
例3
日付からさまざまな時間部分を取得することもできます。
DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT
DATEPART(hour, @date) AS Hour,
DATEPART(minute, @date) AS Minute,
DATEPART(second, @date) AS Second,
DATEPART(millisecond, @date) AS Millsecond,
DATEPART(microsecond, @date) AS Microsecond,
DATEPART(nanosecond, @date) AS Nanosecond; 結果:
+--------+----------+----------+--------------+---------------+--------------+ | Hour | Minute | Second | Millsecond | Microsecond | Nanosecond | |--------+----------+----------+--------------+---------------+--------------| | 8 | 24 | 14 | 311 | 311204 | 311204200 | +--------+----------+----------+--------------+---------------+--------------+
例4
TZoffsetを取得することもできます およびISO_WEEK datepart。
TZoffset 分数(符号付き)として返されます。 ISO_WEEK datepartは、週の番号付けシステムであるISO週-日付システム(ISO 8601標準の一部)を指します。
DECLARE @date datetimeoffset = '2018-06-02 08:24:14.3112042 +08:00';
SELECT
DATEPART(TZoffset, @date) AS 'Time Zone Offset',
DATEPART(ISO_WEEK, @date) AS 'ISO_WEEK'; 結果:
+--------------------+------------+ | Time Zone Offset | ISO_WEEK | |--------------------+------------| | 480 | 22 | +--------------------+------------+
この例では、日付をdatetimeoffsetに設定します。 タイムゾーンオフセットを含むフォーマット。 TZoffset 数分で返されます。
クイックオルタナティブ
T-SQLは、DAY()を使用して、日付から日、月、または年のコンポーネントを返すためのより簡潔な方法も提供します。 、MONTH() およびYEAR() 機能。
これらは次のように機能します:
DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
SELECT
DAY(@date) AS DAY,
MONTH(@date) AS MONTH,
YEAR(@date) AS YEAR;
結果:
+-------+---------+--------+ | DAY | MONTH | YEAR | |-------+---------+--------| | 2 | 6 | 2018 | +-------+---------+--------+
月の名前または日の名前の取得
月の名前または日の名前を取得する必要がある場合は、DATENAME()を使用してください 代わりに機能します。この関数は結果を文字列として返し、月と曜日を名前で返すことができます。 DATENAME()をいくつかご紹介します。 私が何を意味するかを示す例。