Você pode usar o código T-SQL abaixo para converter um número de mês em seu nome correspondente no SQL Server.
Isso é para momentos em que você não tem a data completa – quando tudo que você tem é o número do mês. Se você faz tem a data, então veja como obter o nome do mês de uma data.
Exemplo
Você pode obter o nome do mês de seu número correspondente usando o
DATENAME()
função em conjunto com DATEADD()
. Aqui está um exemplo que usa o mês 10 (outubro):
SELECT DATENAME(
month,
DATEADD( month , 10, -1 )
);
Resultado:
October
Explicação do Código
Se você está se perguntando por que há um
-1
no código acima, é porque a data base é 1900-01-01 (bem, 1900-01-01 00:00:00.000 para ser mais preciso). Se somarmos 10 a 01, obtemos 11, que é novembro (o mês errado). Portanto, precisamos subtrair por 1.
O exemplo a seguir deve ilustrar isso melhor do que minhas palavras. Aqui estão vários
DATEADD()
valores que são retornados, dependendo do que eu uso como terceiro argumento. SELECT
DATEADD( month, 0, 0 ) AS [Base Date],
DATEADD( month, 10, 0 ) AS [Add 10],
DATEADD( month, 10, -1 ) AS [Subtract 1];
Resultado:
+-------------------------+-------------------------+-------------------------+ | Base Date | Add 10 | Subtract 1 | |-------------------------+-------------------------+-------------------------| | 1900-01-01 00:00:00.000 | 1900-11-01 00:00:00.000 | 1900-10-31 00:00:00.000 | +-------------------------+-------------------------+-------------------------+
Então a terceira opção nos dá o número do mês correto, e então é uma simples questão de usar
DATENAME()
para convertê-lo no nome do mês. Uma alternativa:FORMAT()
Se você não gosta de
DATENAME()
função, você pode trocá-lo pelo FORMAT()
função em vez disso. O mesmo conceito se aplica. SELECT FORMAT(
DATEADD( month , 10, -1 ),
'MMMM'
);
Resultado:
October