Compartilhar via


DATENAME (Transact-SQL)

Retorna uma cadeia de caracteres que representa o datepart especificado da date especificada

Para obter uma visão geral de todos os tipos de dados e funções de data e hora do Transact-SQL, consulte tipos de dados e funções de data e hora (Transact-SQL).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

DATENAME ( datepart , date )

Argumentos

  • datepart
    É a parte da date a ser retornada. A tabela a seguir lista todos os argumentos datepart válidos. Equivalentes de variáveis definidas pelo usuário não são válidos.

    datepart

    Abreviações

    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
    É uma expressão que pode ser resolvida para um valor de time, date, smalldatetime, datetime, datetime2 ou datetimeoffset. date pode ser uma expressão, expressão de coluna, variável definida pelo usuário ou literal de cadeia de caracteres.

    Para evitar ambiguidade, use anos de quatro dígitos. Para obter informações sobre anos de dois dígitos, consulte Configurar a opção two digit year cutoff de configuração de servidor.

Tipo de retorno

nvarchar

Valor de retorno

  • Cada datepart e suas abreviações retornam o mesmo valor.

O valor do retorno depende do ambiente de idioma definido usando SET LANGUAGE e do Configurar opção default language de configuração de servidor do logon. O valor do retorno depende de SET DATEFORMAT se date for uma literal de cadeia de caracteres de alguns formatos. SET DATEFORMAT não afeta o valor de retorno quando a data é uma expressão de coluna de um tipo de dados de data de hora.

Quando o parâmetro date tem um argumento de tipo de dados date, o valor de retorno depende da configuração especificada com o uso de SET DATEFIRST.

Argumento datepart TZoffset

Se o argumento datepart for TZoffset (tz) e o argumento date não tiver nenhum deslocamento de fuso horário, será retornado 0.

Argumento de data smalldatetime

Quando date for smalldatetime, os segundos serão retornados como 00.

Padrão retornado para um datepart que não está no argumento de data

Se o tipo de dados do argumento date não tiver o datepart especificado, o padrão desse datepart será retornado apenas quando um literal for especificado para date.

Por exemplo, o ano-mês-dia padrão para qualquer tipo de dados date é 1900-01-01. A instrução a seguir tem argumentos de parte de data para datepart, um argumento de hora para date e retorna 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');

Se date é especificado como uma variável ou coluna da tabela e o tipo de dados para essa variável ou coluna não tem datepart especificado, o erro 9810 é retornado. O exemplo de código a seguir falha porque a parte de ano da data não é um válida para o tipo de dados time que é declarado para a variável @t.

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

Comentários

DATENAME pode ser usado na lista de seleção, cláusulas WHERE, HAVING, GROUP BY e ORDER BY.

No SQL Server 2012, DATENAME converte implicitamente literais de cadeia como tipo datetime2. Isso significa que DATENAME não oferece suporte ao formato YDM quando a data é transmitida como cadeia de caracteres. É necessário converter explicitamente a cadeia de caracteres em um tipo datetime ou smalldatetime para usar o formato YDM.

Exemplos

O exemplo a seguir retorna as partes de data da data especificada.

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

Aqui está o conjunto de resultados.

datepart

Valor de retorno

year, yyyy, yy

2007

quarter, qq, q

4

month, mm, m

Outubro

dayofyear, dy, y

303

day, dd, d

30

week, wk, ww

44

weekday, dw

Terça-feira

hour, hh

12

minute, n

15

second, ss, s

32

millisecond, ms

123

microsecond, mcs

123456

nanosecond, ns

123456700

TZoffset, tz

310

ISO_WEEK, ISOWK, ISOWW

44

Consulte também

Referência

CAST e CONVERT (Transact-SQL)