DATENAME (Transact-SQL)

  • 07/29/2017
  • 3 minutos para ler
    • c
    • j
    • r
    • M
    • M
    • +9

Candidata-se a: ServidorSQL (todas as versões suportadas) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse

Esta função retorna uma cadeia de caracteres representando a parte de data especificada da data especificada.

Veja os tipos de dados de data e hora e funções (Transact-SQL) para uma visão geral de todos os tipos de dados de data e hora e funções Transact-SQL.

Convenções de sintaxe Transact-SQL

Sintaxe

DATENAME ( datepart , date ) 

Nota

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e anteriores, veja a documentação das versões anteriores.

Argumentos

datepart
A parte específica do argumento de data que DATENAME retornará. Esta tabela lista todos os argumentos válidos da datapart.

Nota

DATENAME não aceita equivalentes de variáveis definidas pelo usuário para os argumentos da datapart.

datepart A abreviaturas
ano yyy, yyyy
quarter qqq, q
mês mm, m
dia do ano dy, y
dia dd, d
semana wk, ww
dia da semana dw, w
hora hh
minuto mi, n
segundo ss, s
millisecond ms
microsecond mcs
nanossegundo ns
TZoffset tz
ISO_WEEK ISOWK, ISOWWW

date

Uma expressão que pode resolver para um dos seguintes tipos de dados:

  • date
  • >

  • datetime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • time

Para data, DATENAME aceitará uma expressão de coluna, expressão, string literal, ou variável definida pelo usuário. Use anos de quatro dígitos para evitar problemas de ambiguidade. Veja Configurar a Opção de Configuração do Servidor com dois dígitos para informações sobre anos de dois dígitos.

Tipo de Retorno

nvarchar

Valor de Retorno

  • Cada parte da data e suas abreviaturas retornam o mesmo valor.

O valor de retorno depende do ambiente de idioma definido usando SET LANGUAGE, e pela Opção de Configuração do Servidor de idioma padrão do login. O valor de retorno depende do SET DATEFORMAT se a data for uma string literal de alguns formatos. SET DATEFORMAT não altera o valor de retorno quando a data é uma expressão de coluna de um tipo de dado de data ou hora.

Quando o parâmetro data tem um argumento de tipo de dado de data, o valor de retorno depende da configuração especificada por SET DATEFIRST.

TZoffset datepart Argument

Se o argumento datepart é TZoffset (tz) e o argumento datepart não tem offset de fuso horário, DATEADD retorna 0.

data de data argumento

Quando a data é pequena, DATENAME retorna segundos como 00.

Default Returned for a datepart That Is Not in the date Argument

If the data type of the date argument does not have the datepart specified, DATENAME will return the default for that datepart only if the date argument has a literal .

For example, the default year-month-day for any date data data type is 1900-01-01. Esta instrução tem argumentos de parte de data para datepart, um argumento de tempo para data, e DATENAME 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 a data for especificada como variável ou coluna de tabela, e o tipo de dado para aquela variável ou coluna não tiver a parte de data especificada, DATENAME retornará o erro 9810. Neste exemplo, a variável @t tem um tipo de dado de tempo. O exemplo falha porque a data parte ano é inválida para o tipo de dado de tempo:

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

Remarks

Use DATENAME nas seguintes cláusulas:

  • GRUPO POR
  • HAVING
  • ORDENAME POR
  • SELECT <list >
  • AQUI

No SQL Server, DATENAME implicitamente funde literalmente cadeias de caracteres como um tipo datetime2. Em outras palavras, DATENAME não suporta o formato YDM quando a data é passada como uma string. Você deve explicitamente fundir a string em um tipo datetime ou smallldatetime para usar o formato YDM.

Exemplos

Este exemplo retorna as partes da data para a data especificada. Substitua um valor de parte de data da tabela pelo argumento datepart na instrução SELECT:

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

Aqui está o resultado definido.

datepart Valor de retorno
ano, aaaaaaaa 2007
quarto, qq, q 4
mês, mm, m Outubro
dia do ano, corante, y 303
dia, dd, d 30
semana, wk, ww 44
dia da semana, dw Terça-feira
hora, hh 12
minuto, n 15
segundo, ss, s 32
milissegundo, ms 123
microssegundo, mcs 123456
nanossegundo, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWWW 44

Azure Synapse Analytics and Parallel Data Warehouse

Este exemplo devolve as peças da data para a data especificada. Substitua um valor de parte de data da tabela pelo argumento datepart na instrução SELECT:

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

Aqui está o resultado definido.

datepart Valor de retorno
ano, aaaa, aaa 2007
quarto, qq, q 4
mês, mm, m Outubro
dia do ano, corante, y 303
dia, dd, d 30
semana, wk, ww 44
dia da semana, dw Terça-feira
hora, hh 12
minuto, n 15
segundo, ss, s 32
milissegundo, ms 123
microssegundo, mcs 123456
nanossegundo, ns 123456700
TZoffset, tz +05:10
ISO_WEEK, ISOWK, ISOWWW 44

Veja também

CAST e CONVERT (Transact-SQL)

Deixe uma resposta

O seu endereço de email não será publicado.