- 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)