Usuário com melhor resposta
convertendo mes para caracter

Pergunta
-
Olá amigos
Como eu faço para converter o mes que esta dentro de uma tabela para caracter.
Exemplo tenho uma tabela que tem dia, mes e ano, eu preciso pegar apenas o mes desta tabela e trazer em string, por exemplo, janeiro, fevereiro, março, etc
MONTH
(convert (char(2), dbo.tblNotasTitulos.DataUltimoRegistro))como posso completar o comando acima?
Obrigado
Respostas
-
Carlo,s
Segue.
SELECT
CASE
DATEPART(MONTH, GETDATE())
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Maro'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
ELSE
'Dezembro' END As Mes
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com- Marcado como Resposta J.Carlos.Rib terça-feira, 26 de junho de 2012 13:42
-
Fabrizzio, no caso apenas para concluir, onde eu coloco a tabela no comando acima?
- Marcado como Resposta J.Carlos.Rib terça-feira, 26 de junho de 2012 13:42
Todas as Respostas
-
Carlo,s
Segue uma possivel solução.
CREATE
TABLE Mes
(
Id INT,
Mes VARCHAR(100)
)
INSERT
INTO Mes VALUES
(
1, 'Janeiro'),
(
2, 'Fevereiro'),
(
3, 'Maro'),
(
4, 'Abril'),
(
5, 'Maio'),
(
6, 'Junho'),
(
7, 'Julho'),
(
8, 'Agosto'),
(
9, 'Setembro'),
(
10, 'Outubro'),
(
11, 'Novembro'),
(
11, 'Dezembro')
SELECT
b.Mes, a.COUNT(*)
FROM
Tabela1 a
INNER
JOIN Mes b
ON (b.Id = a.DATEPART(MONTH, a.CampoData))
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com -
-
Carlo,s
Segue.
SELECT
CASE
DATEPART(MONTH, GETDATE())
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Maro'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
ELSE
'Dezembro' END As Mes
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com- Marcado como Resposta J.Carlos.Rib terça-feira, 26 de junho de 2012 13:42
-
Olá Carlos,
Acredito que poderia fazer desta forma tambem
SET LANGUAGE 'Brazilian' GO select DATENAME(MONTH,getdate())
Att.
Lukas Baldan
- Editado Lukas de Castro Ruocco Baldan terça-feira, 26 de junho de 2012 13:45
-
Fabrizzio, no caso apenas para concluir, onde eu coloco a tabela no comando acima?
- Marcado como Resposta J.Carlos.Rib terça-feira, 26 de junho de 2012 13:42
-
Carlos,
O Comando completo utilizando-se uma tabela seria:
SELECT
CASE
DATEPART(MONTH, CampoData)
WHEN 1 THEN 'Janeiro'
WHEN 2 THEN 'Fevereiro'
WHEN 3 THEN 'Maro'
WHEN 4 THEN 'Abril'
WHEN 5 THEN 'Maio'
WHEN 6 THEN 'Junho'
WHEN 7 THEN 'Julho'
WHEN 8 THEN 'Agosto'
WHEN 9 THEN 'Setembro'
WHEN 10 THEN 'Outubro'
WHEN 11 THEN 'Novembro'
ELSE
'Dezembro' END As Mes
FROM
Tabela
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com -
Eu criaria uma FUNCTION com o código do Fabrizzio em que o mês é enviado por parâmetro e retorna o nome do mês como VARCHAR. Dessa forma poderia ser utilizada numa query, por exemplo:
SELECT *, GetNomeMes(MONTH(data)) AS NomeMes FROM tabela
em que GetNomeMes seria a função
- Editado Rechousa terça-feira, 26 de junho de 2012 13:44