DATENAME (Transact-SQL)DATENAME (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

この関数は、指定された date の指定された datepart を表す文字列を返します。This function returns a character string representing the specified datepart of the specified date.

の日付と時刻のあらゆるデータ型と関数に関する概要については、「日付と時刻のデータ型および関数 (Transact-SQL)Transact-SQLTransact-SQL」を参照してください。See Date and Time Data Types and Functions (Transact-SQL) for an overview of all Transact-SQLTransact-SQL date and time data types and functions.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

DATENAME ( datepart , date )  

引数Arguments

datepartdatepart
によって返されるdateDATENAME 引数の特定の部分。The specific part of the date argument that DATENAME will return. この表には、有効な datepart 引数をすべて一覧表示しています。This table lists all valid datepart arguments.

注意

DATENAME は、datepart 引数に関して、ユーザー定義変数に相当するものは受け入れられません。DATENAME does not accept user-defined variable equivalents for the datepart arguments.

datepartdatepart 省略形Abbreviations
yearyear yy、yyyyyy, yyyy
quarterquarter qq, qqq, q
monthmonth mm, mmm, m
dayofyeardayofyear dy、ydy, y
dayday dd, ddd, d
weekweek wk、wwwk, ww
weekdayweekday dw、wdw, w
hourhour hhhh
minuteminute mi、nmi, n
secondsecond ss, sss, s
millisecondmillisecond msms
microsecondmicrosecond mcsmcs
nanosecondnanosecond nsns
TZoffsetTZoffset tztz
ISO_WEEKISO_WEEK ISOWK、ISOWWISOWK, ISOWW

datedate

次のいずれかのデータ型に解決できる式。An expression that can resolve to one of the following data types:

  • datedate
  • datetimedatetime
  • datetimeoffsetdatetimeoffset
  • datetime2datetime2
  • smalldatetimesmalldatetime
  • timetime

date の場合、DATENAME では、列式、式、文字列リテラル、ユーザー定義の変数が受け入れられます。For date, DATENAME will accept a column expression, expression, string literal, or user-defined variable. あいまいさの問題を排除するために、4 桁の西暦を使用してください。Use four-digit years to avoid ambiguity issues. 2 桁の西暦については、「two digit year cutoff サーバー構成オプションの構成」を参照してください。See Configure the two digit year cutoff Server Configuration Option for information about two-digit years.

戻り値の型Return Type

nvarcharnvarchar

戻り値Return Value

  • -各日付構成要素とその省略形は、同じ値を返します。Each datepart and its abbreviations return the same value.

戻り値は、SET LANGUAGE と、ログインの default language サーバー構成オプションの構成で設定した言語環境に依存します。The return value depends on the language environment set by using SET LANGUAGE, and by the Configure the default language Server Configuration Option of the login. date がなんらかの形式の文字列リテラルである場合、戻り値は SET DATEFORMAT に依存します。The return value depends on SET DATEFORMAT if date is a string literal of some formats. date が日付データ型や時刻データ型の列式である場合、SET DATEFORMAT によって戻り値が変わることはありません。SET DATEFORMAT does not change the return value when the date is a column expression of a date or time data type.

date パラメーターに date データ型引数がある場合、戻り値は SET DATEFIRST によって指定された設定に依存します。When the date parameter has a date data type argument, the return value depends on the setting specified by SET DATEFIRST.

TZoffset (datepart 引数)TZoffset datepart Argument

datepart 引数が TZoffset (tz) で、date 引数にタイム ゾーン オフセットがない場合、DATEADD は 0 を返します。If the datepart argument is TZoffset (tz) and the date argument has no time zone offset, DATEADD returns 0.

smalldatetime (date 引数)smalldatetime date Argument

datesmalldatetime のとき、DATENAME は秒として 00 を返します。When date is smalldatetime, DATENAME returns seconds as 00.

date 引数に存在しない datepart を指定した場合に返される既定値Default Returned for a datepart That Is Not in the date Argument

date 引数のデータ型に datepart が指定されていない場合、DATENAME は、date 引数にリテラルが含まれる場合にのみ、その datepart の既定値を返します。If the data type of the date argument does not have the specified datepart, DATENAME will return the default for that datepart only if the date argument has a literal .

など、既定の年-月-日の任意の日付データ型は 1900年-01-01 です。For example, the default year-month-day for any date data type is 1900-01-01. このステートメントでは、datepart 引数と date 引数にそれぞれ日付部分と時刻を表す値が指定されています。DATENAME1900, January, 1, 1, Monday を返します。This statement has date part arguments for datepart, a time argument for date, and DATENAME returns 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');  

date が変数またはテーブル列として指定され、その変数または列のデータ型に datepart が指定されていない場合、DATENAME はエラー 9810 を返します。If date is specified as a variable or table column, and the data type for that variable or column does not have the specified datepart, DATENAME will return error 9810. この例では、変数 @ttime データ型です。In this example, variable @t has a time data type. time データ型の日付部分の年度が無効なため、この例は失敗します。The example fails because the date part year is invalid for the time data type:

DECLARE @t time = '12:10:30.123';   
SELECT DATENAME(year, @t);  

解説Remarks

次の句で DATENAME を使用します。Use DATENAME in the following clauses:

  • GROUP BYGROUP BY
  • HAVINGHAVING
  • ORDER BYORDER BY
  • SELECT <list>SELECT <list>
  • WHEREWHERE

SQL Server 2019 (15.x)SQL Server 2019 (15.x) , 、DATENAME は、文字列リテラルを暗黙的にキャスト、 datetime2 型です。In SQL Server 2019 (15.x)SQL Server 2019 (15.x), DATENAME implicitly casts string literals as a datetime2 type. つまり、DATENAME では、日付が文字列として渡される場合、YDM 形式がサポートされません。In other words, DATENAME does not support the format YDM when the date is passed as a string. 文字列を明示的にキャストする必要があります、 datetime または smalldatetime YDM 形式を使用する型。You must explicitly cast the string to a datetime or smalldatetime type to use the YDM format.

Examples

この例は、指定された日付の日付部分を返します。This example returns the date parts for the specified date. SELECT ステートメントの 引数の代わりにテーブルのdatepartdatepart 値を使用します。Substitute a datepart value from the table for the datepart argument in the SELECT statement:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');

結果セットは次のようになります。Here is the result set.

datepartdatepart 戻り値Return value
year、yyyy、yyyear, yyyy, yy 20072007
quarter、qq、qquarter, qq, q 44
month、mm、mmonth, mm, m 10 月October
dayofyear、dy、ydayofyear, dy, y 303303
day、dd、dday, dd, d 3030
week、wk、wwweek, wk, ww 4444
weekday、dwweekday, dw TuesdayTuesday
hour、hhhour, hh 1212
minute、nminute, n 1515
second、ss、ssecond, ss, s 3232
millisecond、msmillisecond, ms 123123
microsecond、mcsmicrosecond, mcs 123456123456
nanosecond、nsnanosecond, ns 123456700123456700
TZoffset、tzTZoffset, tz +05:10+05:10
ISO_WEEK、ISOWK、ISOWWISO_WEEK, ISOWK, ISOWW 4444

Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) および Parallel Data WarehouseParallel Data Warehouseand Parallel Data WarehouseParallel Data Warehouse

この例は、指定された日付の日付部分を返します。This example returns the date parts for the specified date. SELECT ステートメントの 引数の代わりにテーブルのdatepartdatepart 値を使用します。Substitute a datepart value from the table for the datepart argument in the SELECT statement:

SELECT DATENAME(datepart,'2007-10-30 12:15:32.1234567 +05:10');  

結果セットは次のようになります。Here is the result set.

datepartdatepart 戻り値Return value
year、yyyy、yyyear, yyyy, yy 20072007
quarter、qq、qquarter, qq, q 44
month、mm、mmonth, mm, m 10 月October
dayofyear、dy、ydayofyear, dy, y 303303
day、dd、dday, dd, d 3030
week、wk、wwweek, wk, ww 4444
weekday、dwweekday, dw TuesdayTuesday
hour、hhhour, hh 1212
minute、nminute, n 1515
second、ss、ssecond, ss, s 3232
millisecond、msmillisecond, ms 123123
microsecond、mcsmicrosecond, mcs 123456123456
nanosecond、nsnanosecond, ns 123456700123456700
TZoffset、tzTZoffset, tz +05:10+05:10
ISO_WEEK、ISOWK、ISOWWISO_WEEK, ISOWK, ISOWW 4444

参照See also

CAST および CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)