none
convertendo mes para caracter

    Question

  • 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

    Tuesday, June 26, 2012 1:22 PM

Answers

  • 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

    • Marked as answer by J.Carlos.Rib Tuesday, June 26, 2012 1:42 PM
    Tuesday, June 26, 2012 1:36 PM
    Moderator
  • Fabrizzio, no caso apenas para concluir, onde eu coloco a tabela no comando acima?
    • Marked as answer by J.Carlos.Rib Tuesday, June 26, 2012 1:42 PM
    Tuesday, June 26, 2012 1:39 PM

All replies

  • 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

    Tuesday, June 26, 2012 1:28 PM
    Moderator
  • fabrizzio obrigado, porem eu nao posso criar outra tabela, eu preciso apenas converter

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

    Tuesday, June 26, 2012 1:32 PM
  • 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

    • Marked as answer by J.Carlos.Rib Tuesday, June 26, 2012 1:42 PM
    Tuesday, June 26, 2012 1:36 PM
    Moderator
  • Olá Carlos,

    Acredito que poderia fazer desta forma tambem

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




    Att.
    Lukas Baldan



    Tuesday, June 26, 2012 1:37 PM
  • Fabrizzio, no caso apenas para concluir, onde eu coloco a tabela no comando acima?
    • Marked as answer by J.Carlos.Rib Tuesday, June 26, 2012 1:42 PM
    Tuesday, June 26, 2012 1:39 PM
  • 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

    Tuesday, June 26, 2012 1:43 PM
    Moderator
  • 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

    • Edited by Rechousa Tuesday, June 26, 2012 1:44 PM
    Tuesday, June 26, 2012 1:43 PM