DATENAME (Transact-SQL)

指定された date について、特定の datepart を表す文字列を返します。

Transact-SQL の日付と時刻のデータ型および関数の概要については、「日付と時刻の関数 (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 が返されます。

smalldatetime (date 引数)

date に smalldatetime を指定した場合、秒要素は 00 として返されます。

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 R2 では、DATENAME は、文字列リテラルを暗黙的に datetime2 型にキャストします。つまり、DATEDIFF では、日付が文字列として渡される場合に YDM 形式がサポートされなくなりました。YDM 形式を使用するには、文字列を datetime 型または smalldatetime 型に明示的にキャストする必要があります。

次の例は、指定された日付の日付部分を返します。

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