No SQL Server, a função T-SQL DATENAME() retorna uma cadeia de caracteres que representa a parte de data especificada da data especificada. Por exemplo, você pode passar em 2021-01-07 e ter o SQL Server retornando apenas a parte do mês (January).

O tipo de retorno para DATENAME() é nvarchar.

Exemplos abaixo.

Sintaxe

A DATENAME()Sintaxe vai assim:

DATENAME ( datepart , date )

Onde datepart é a parte de date (um valor de data ou hora) para a qual uma string de caracteres será retornada.

Exemplo 1

Aqui está um exemplo básico onde eu devolvo o componente do mês de uma data.

SELECT DATENAME(month, '2021-01-07') AS Result;

Resultado:

+----------+| Result ||----------|| January |+----------+

Exemplo 2

Neste exemplo eu atribuo uma data a uma variável, então eu uso múltiplas instâncias de DATEPART() para recuperar diferentes partes dessa data.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DATENAME(year, @date) AS Year, DATENAME(quarter, @date) AS Quarter, DATENAME(month, @date) AS Month, DATENAME(dayofyear, @date) AS 'Day of Year', DATENAME(day, @date) AS Day, DATENAME(week, @date) AS Week, DATENAME(weekday, @date) AS Weekday;

Resultado:

+--------+-----------+---------+---------------+-------+--------+-----------+| Year | Quarter | Month | Day of Year | Day | Week | Weekday ||--------+-----------+---------+---------------+-------+--------+-----------|| 2018 | 2 | June | 153 | 2 | 22 | Saturday |+--------+-----------+---------+---------------+-------+--------+-----------+

Exemplo 3

Você também pode recuperar as várias partes de tempo a partir da data.

DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';SELECT DATENAME(hour, @date) AS Hour, DATENAME(minute, @date) AS Minute, DATENAME(second, @date) AS Second, DATENAME(millisecond, @date) AS Millsecond, DATENAME(microsecond, @date) AS Microsecond, DATENAME(nanosecond, @date) AS Nanosecond;

Resultado:

+--------+----------+----------+--------------+---------------+--------------+| Hour | Minute | Second | Millsecond | Microsecond | Nanosecond ||--------+----------+----------+--------------+---------------+--------------|| 8 | 24 | 14 | 311 | 311204 | 311204200 |+--------+----------+----------+--------------+---------------+--------------+

Exemplo 4

Você também pode recuperar o TZoffset e o ISO_WEEK datepart.

O TZoffset é retornado como o número de minutos (assinado). O ISO_WEEK datepart refere-se ao sistema de data da semana ISO (parte da norma ISO 8601) que é um sistema de numeração para semanas.

DECLARE @date datetimeoffset = '2018-06-02 08:24:14.3112042 +08:00';SELECT DATENAME(TZoffset, @date) AS 'Time Zone Offset', DATENAME(ISO_WEEK, @date) AS 'ISO_WEEK';

Resultado:

+--------------------+------------+| Time Zone Offset | ISO_WEEK ||--------------------+------------|| +08:00 | 22 |+--------------------+------------+

Neste exemplo, defino a data para um formato datetimeoffset, que inclui o deslocamento do fuso horário. O TZoffset é retornado em minutos.

Os resultados de DATENAME() assemelhar-se-ão frequentemente aos resultados de DATEPART() (devido à maioria das partes da data serem numéricas). No entanto, DATEPART() retorna um número inteiro em oposição a uma cadeia de caracteres. Portanto DATEPART() irá retornar meses (e o componente do dia da semana) na forma numérica (por exemplo 1 em vez de January).

Conseguir o Nome Curto do Mês

Se você precisar do nome do mês, mas em sua forma abreviada de 3 letras (por exemplo, Jan em vez de January), veja o meu artigo 5 Maneiras de Obter o Nome Curto do Mês a partir de uma Data no SQL Server.

Deixe uma resposta

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