SQL Serverでは、T-SQL DATENAME()
関数は、指定された datepartを表す文字列を返します 指定された日付 。たとえば、2021-01-07
を渡すことができます SQL Serverに月の部分のみを返すようにします(January
。
DATENAME()
の戻りタイプ nvarcharです 。
以下の例。
構文
DATENAME()
構文は次のようになります:
DATENAME ( datepart , date )
datepart
date
の一部です (日付または時刻の値)文字列が返されます。
例1
これは、日付から月のコンポーネントを返す基本的な例です。
SELECT DATENAME(month, '2021-01-07') AS Result;
結果:
+----------+ | Result | |----------| | January | +----------+
例2
この例では、変数に日付を割り当ててから、DATEPART()
の複数のインスタンスを使用します。 その日付のさまざまな部分を取得します。
DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042'; SELECT DATENAME(year, @date) AS Year, DATENAME(quarter, @date) AS Quarter, DATENAME(month, @date) AS Month, DATENAME(dayofyear, @date) AS 'Day of Year', DATENAME(day, @date) AS Day, DATENAME(week, @date) AS Week, DATENAME(weekday, @date) AS Weekday;
結果:
+--------+-----------+---------+---------------+-------+--------+-----------+ | Year | Quarter | Month | Day of Year | Day | Week | Weekday | |--------+-----------+---------+---------------+-------+--------+-----------| | 2018 | 2 | June | 153 | 2 | 22 | Saturday | +--------+-----------+---------+---------------+-------+--------+-----------+
例3
日付からさまざまな時間部分を取得することもできます。
DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042'; SELECT DATENAME(hour, @date) AS Hour, DATENAME(minute, @date) AS Minute, DATENAME(second, @date) AS Second, DATENAME(millisecond, @date) AS Millsecond, DATENAME(microsecond, @date) AS Microsecond, DATENAME(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 DATENAME(TZoffset, @date) AS 'Time Zone Offset', DATENAME(ISO_WEEK, @date) AS 'ISO_WEEK';
結果:
+--------------------+------------+ | Time Zone Offset | ISO_WEEK | |--------------------+------------| | +08:00 | 22 | +--------------------+------------+
この例では、日付をdatetimeoffset
に設定します。 タイムゾーンオフセットを含むフォーマット。 TZoffset
数分で返されます。
DATENAME()
の結果 多くの場合、DATEPART()
の結果に似ています。 (ほとんどの日付部分が数値であるため)。ただし、DATEPART()
文字列ではなく整数を返します。したがって、DATEPART()
月(および平日コンポーネント)を数値形式で返します(例:1
January
の代わりに 。
短い月の名前を取得する
月の名前が必要であるが、短縮された3文字の省略形(たとえば、Jan
)が必要な場合 January
の代わりに )、SQLServerで日付から短い月の名前を取得する5つの方法に関する私の記事を確認してください。