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 Funções Date e Time (Transact-SQL). Para obter informações e exemplos comuns dos tipos de dados e funções de data e hora, consulte Usando dados de data e hora.
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álidas.datepart
Abreviações
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
É uma expressão que pode ser resolvida para um valor time, date, smalldatetime, datetime, datetime2 ou para um valor datetimeoffset. date pode ser uma expressão, uma expressão de coluna, uma variável definida pelo usuário ou uma cadeia de caracteres literal.Para evitar ambiguidade, use anos de quatro dígitos. Para obter informações sobre anos de dois dígitos, consulte Opção two digit year cutoff.
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 idioma padrão 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.
Para versões do SQL Server posteriores à SQL Server 2000, quando o parâmetro date tem um argumento de tipo de dados date, o valor de retorno depende da definição especificada por meio 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 para aquele datepart será retornado.
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');
A hora-minuto-segundo padrão para o tipo de dados time é 00:00:00. A instrução a seguir tem argumentos de parte de hora para datepart, um argumento de data para date e retorna 0, 0, 0.
SELECT DATENAME(hour, '2007-06-01')
,DATENAME(minute, '2007-06-01')
,DATENAME(second, '2007-06-01');
Comentários
DATENAME pode ser usado na lista de seleção, cláusulas WHERE, HAVING, GROUP BY e ORDER BY. No SQL Server 2008 R2, DATENAME converte implicitamente literais de cadeia como tipo datetime2. Isso significa que DATEDIFF não oferece mais 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 |