A função DATENAME() retorna uma string, tipo navarchar, que representa uma data especificada parte da data, pode ser um dia, mês, ano ou hora de data específica.
DATENAME() é similar ao DATEPART() exceto pelo tipo de retorno.
A função DATENAME() retorna a parte da data como uma string de caracteres enquanto a função DATEPART() retorna a parte da data como um inteiro.
SYNTAX
DATENAME (datepart, inputdate)
datepart é a parte de uma data a ser extraída.
inputdate é a data a partir da qual a parte da data é extraída.
Vejamos um exemplo da função DATENAME em SQL.
Seguir a instrução usa a função DATENAME, que extrai as partes da data de uma determinada data ‘2018-03-27 18:23:45.470’
DECLARE @date DATETIME = '2018-03-27 18:23:45.470';SELECT DATENAME(year, @date) as year,DATENAME(quarter, @date) as quarter,DATENAME(month, @date) as month,DATENAME(day, @date) as day,DATENAME(dayofyear ,@date) as dayofyear,DATENAME(Week ,@date) as week,DATENAME(hour, @date) as hour,DATENAME(minute, @date) as minute,DATENAME(second, @date) as second ,DATENAME(millisecond, @date) as millisecond ,DATENAME(microsecond, @date) as microsecond ,DATENAME(nanosecond, @date) as nanosecond
Como pode ver, Retorna toda a parte da data como Trimestre, Mês, dia, dia do ano, semana, hora, minuto, segundo, milissegundo, microssegundo e nanossegundo.
Então, usando a função DATENAME você pode obter qualquer parte da data.
A seguir são a lista de partes válidas da data que você pode usar para obter uma parte da data como por sua exigência.
day d, dd month m, mmyear yy, yyyyquarter qq, qhour hhminute mi, nsecond ss, smillisecond msmicrosecond mcsnanosecond nsweek wk, wwdayofyear dy, y
DATEPART VS DATENAME
Vejamos um exemplo considerando a diferença entre DATEPART e DATENAME.
DATEPART retorna uma parte da data como um número inteiro onde como DATENAME retorna uma string do tipo datatype.
Então se você adicionar qualquer número ao resultado retornado por DATEPART, ele adiciona o número ao resultado e retorna o resultado modificado onde como quando você adiciona qualquer número ao resultado retornado por DATENAME , ele concatena o número com o resultado ao invés de adicioná-lo .
Vejamos um exemplo, na seguinte instrução você pode ver para determinada data que tentamos adicionar o valor 2 no resultado retornado por DATEPART e função DATENAME para a data parte do mês e ano para determinada data.
Pode ver o resultado final onde a função DATEPART adiciona o 2 no resultado enquanto DATENAME concatena o 2 com o resultado.
DECLARE @date DATETIME = '2018-03-27 18:23:45.470';SELECT DATENAME(month, @date) + '2' as month_from_DateName, DATEPART(month, @date) + '2' as month_from_DatePart SELECT DATENAME(year, @date) + '2' as year_from_DateName, DATEPART(year, @date) + '2' as year_from_DatePart,
Recomendado para si
SQL Server DATEPART()
325 vistas totais, 3 vistas hoje