none
convertendo mes para caracter RRS feed

  • 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

    terça-feira, 26 de junho de 2012 13:22

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
    terça-feira, 26 de junho de 2012 13:36
    Moderador
  • 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
    terça-feira, 26 de junho de 2012 13:39

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

    terça-feira, 26 de junho de 2012 13:28
    Moderador
  • fabrizzio obrigado, porem eu nao posso criar outra tabela, eu preciso apenas converter

    o mes de numero para caracter da tabela atual, tem como?

    terça-feira, 26 de junho de 2012 13:32
  • 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
    terça-feira, 26 de junho de 2012 13:36
    Moderador
  • Olá Carlos,

    Acredito que poderia fazer desta forma tambem

    SET LANGUAGE 'Brazilian'
    GO
    
    select DATENAME(MONTH,getdate())




    Att.
    Lukas Baldan



    terça-feira, 26 de junho de 2012 13:37
  • 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
    terça-feira, 26 de junho de 2012 13:39
  • 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

    terça-feira, 26 de junho de 2012 13:43
    Moderador
  • 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
    terça-feira, 26 de junho de 2012 13:43