次の方法で共有


DATENAME (Transact-SQL)

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

この関数は、指定された date の指定された datepart を表す文字列を返します。

Transact-SQL の日付と時刻のデータ型および関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。

Transact-SQL 構文表記規則

構文

DATENAME ( datepart , date )  

引数

datepart
DATENAME によって返される date 引数の特定の部分。 この表には、有効な datepart 引数をすべて一覧表示しています。

注意

DATENAME は、datepart 引数に関して、ユーザー定義変数に相当するものは受け入れられません。

datepart 省略形
year yy、yyyy
quarter qq, q
month mm, m
dayofyear dy、y
day dd, d
week wk、ww
weekday dw、w
hour hh
minute mi、n
second ss, s
millisecond ms
microsecond mcs
nanosecond ns
TZoffset tz
ISO_WEEK ISOWK、ISOWW

date

次のいずれかのデータ型に解決できる式。

  • date
  • datetime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • time

date の場合、DATENAME では、列式、式、文字列リテラル、ユーザー定義の変数が受け入れられます。 あいまいさの問題を排除するために、4 桁の西暦を使用してください。 2 桁の西暦については、「two digit year cutoff サーバー構成オプションの構成」を参照してください。

戻り値の型

nvarchar

戻り値

  • -各日付構成要素とその省略形は、同じ値を返します。

戻り値は、SET LANGUAGE と、ログインの default language サーバー構成オプションの構成で設定した言語環境に依存します。 date がなんらかの形式の文字列リテラルである場合、戻り値は SET DATEFORMAT に依存します。 date が日付データ型や時刻データ型の列式である場合、SET DATEFORMAT によって戻り値が変わることはありません。

date パラメーターに date データ型引数がある場合、戻り値は SET DATEFIRST によって指定された設定に依存します。

TZoffset (datepart 引数)

datepart 引数が TZoffset (tz) で、date 引数にタイム ゾーン オフセットがない場合、DATEADD は 0 を返します。

smalldatetime (date 引数)

datesmalldatetime のとき、DATENAME は秒として 00 を返します。

date 引数に存在しない datepart を指定した場合に返される既定値

date 引数のデータ型に datepart が指定されていない場合、DATENAME は、date 引数にリテラルが含まれる場合にのみ、その datepart の既定値を返します。

など、既定の年-月-日の任意の日付データ型は 1900年-01-01 です。 このステートメントでは、datepart 引数と date 引数にそれぞれ日付部分と時刻を表す値が指定されています。DATENAME1900, 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 を返します。 この例では、変数 "@t" は time データ型です。 time データ型の日付部分の年度が無効なため、この例は失敗します。

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

解説

次の句で DATENAME を使用します。

  • GROUP BY
  • HAVING
  • ORDER BY
  • SELECT <list>
  • WHERE

SQL Server , 、DATENAME は、文字列リテラルを暗黙的にキャスト、 datetime2 型です。 つまり、DATENAME では、日付が文字列として渡される場合、YDM 形式がサポートされません。 文字列を明示的にキャストする必要があります、 datetime または smalldatetime YDM 形式を使用する型。

この例は、指定された日付の日付部分を返します。 SELECT ステートメントの datepart 引数の代わりにテーブルの datepart 値を使用します。

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 Tuesday
hour、hh 12
minute、n 15
second、ss、s 32
millisecond、ms 123
microsecond、mcs 123456
nanosecond、ns 123456700
TZoffset、tz +05:10
ISO_WEEK、ISOWK、ISOWW 44

Azure Synapse Analytics および Analytics Platform System (PDW)

この例は、指定された日付の日付部分を返します。 SELECT ステートメントの datepart 引数の代わりにテーブルの datepart 値を使用します。

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 Tuesday
hour、hh 12
minute、n 15
second、ss、s 32
millisecond、ms 123
microsecond、mcs 123456
nanosecond、ns 123456700
TZoffset、tz +05:10
ISO_WEEK、ISOWK、ISOWW 44

関連項目

CAST および CONVERT (Transact-SQL)