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 可以是運算式、資料行運算式、使用者自訂變數或字串常值。

    若要避免模糊不清,請使用四位數年份。如需兩位數年份的詳細資訊,請參閱<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 中,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

十月

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