DATENAME (Transact-SQL)
指定された date について、特定の datepart を表す文字列を返します。
Transact-SQL の日付と時刻のデータ型および関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。日付と時刻のデータ型および関数の一般的な例については、「日時データの使用」を参照してください。
構文
DATENAME (datepart ,date )
引数
datepart
取得する date の要素を指定します。次の表は、datepart 引数に有効なすべての値の一覧です。ユーザー定義変数に相当するものは無効です。datepart
省略形
year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
weekday
dw
hour
hh
minute
mi, n
second
ss, s
millisecond
ms
microsecond
mcs
nanosecond
ns
TZoffset
tz
date
time、date、smalldatetime、datetime、datetime2、datetimeoffset のいずれかの値に解決可能な式を指定します。date には、式、列式、ユーザー定義変数、または文字列リテラルを指定できます。こうしたあいまいさを排除するため、4 桁の西暦を使用してください。2 桁の年の詳細については、「two digit year cutoff オプション」を参照してください。
戻り値の型
nvarchar
戻り値
- いずれの datepart も、対応する省略形を指定すると、同じ値が返されます。
戻り値は、SET LANGUAGE およびログインの既定の言語で設定した言語環境に依存します。date がなんらかの形式の文字列リテラルである場合、戻り値は SET DATEFORMAT に依存します。date が日付型や時刻型の列式である場合、SET DATEFORMAT は戻り値に影響しません。
SQL Server 2000 より後のバージョンの SQL Server では、date パラメーターに date データ型の引数を指定した場合、戻り値は、SET DATEFIRST で指定された設定に依存します。
TZoffset (datepart 引数)
datepart 引数に TZoffset (tz) を指定し、date 引数にタイム ゾーン オフセットを指定しなかった場合は、0 が返されます。
date 引数に存在しない datepart を指定した場合に返される既定値
date 引数のデータ型に、指定された datepart が存在しない場合、その datepart の既定値が返されます。
たとえば、date データ型の既定の年月日は 1900-01-01 です。次のステートメントでは、datepart 引数と date 引数に、それぞれ日付部分と時刻を表す値が指定されています。この場合、戻り値は 1900, January, 1, 1, Monday になります。
SELECT DATENAME(year, '12:10:30.123')
,DATENAME(month, '12:10:30.123')
,DATENAME(day, '12:10:30.123')
,DATENAME(dayofyear, '12:10:30.123')
,DATENAME(weekday, '12:10:30.123');
time データ型の既定の時分秒は 00:00:00 です。次のステートメントでは、datepart 引数と date 引数に、それぞれ時刻部分と日付を表す値が指定されています。この場合、戻り値は 0, 0, 0 になります。
SELECT DATENAME(hour, '2007-06-01')
,DATENAME(minute, '2007-06-01')
,DATENAME(second, '2007-06-01');
説明
DATENAME は、選択リストのほか、WHERE 句、HAVING 句、GROUP BY 句、および ORDER BY 句で使用できます。SQL Server 2008 では、DATENAME は文字列リテラルを datetime2 型として暗黙的にキャストします。DATEADD を指定して DATENAME を使用する場合は、文字列リテラルを暗黙的にキャストしないようにしてください。詳細については、「DATEADD (Transact-SQL)」を参照してください。
例
次の例は、指定された日付の日付部分を返します。
SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10')
以下に結果セットを示します。
datepart |
戻り値 |
---|---|
year, yyyy, yy |
2007 |
quarter, qq, q |
4 |
month, mm, m |
10 月 |
dayofyear, dy, y |
303 |
day, dd, d |
30 |
week, wk, ww |
44 |
weekday, dw |
火曜日 |
hour, hh |
12 |
minute, n |
15 |
second, ss, s |
32 |
millisecond, ms |
123 |
microsecond, mcs |
123456 |
nanosecond, ns |
123456700 |
TZoffset, tz |
310 |