none
converter data RRS feed

  • Pergunta

  • Senhores,

    Poderiam me ajudar na formatação de dois campos?

    Meu campo data preciso dele no formato MMDDAAAA, sem traços, barras e pontos.

    Meu campo hora precisa ficar HHMM

    quinta-feira, 15 de janeiro de 2015 11:44

Respostas

  • Não entendi como usar isso no SQL Server?

     string dt = DateTime.Now.ToString("MMddyyyy");
     string hora = DateTime.Now.ToString("HHMM");

    Ops desculpa não vi que era SQL.

    SELECT     CONVERT(varchar(2), DATEPART(mm, GETDATE())) + CONVERT(varchar(2), DATEPART(dd, GETDATE())) + CONVERT(varchar(4), DATEPART(yyyy, GETDATE())) AS data
    
    SELECT     CONVERT(varchar(2), DATEPART(hh, GETDATE())) + CONVERT(varchar(2), DATEPART(m, GETDATE())) AS hora


    Nome : Romy G. Moura Cargo: Analista Programador

    Renata faltou um tratamento, devemos adicionar zero caso retorne o valor com apenas 1 unidade, segue o exemplo.

    SELECT     RIGHT('00' + CONVERT(varchar(2), DATEPART(mm, GETDATE())), 2) + RIGHT('00' + CONVERT(varchar(2), DATEPART(dd, GETDATE())), 2) 
                          + RIGHT('0000' + CONVERT(varchar(4), DATEPART(yyyy, GETDATE())), 4) AS data


    Nome : Romy G. Moura Cargo: Analista Programador

    • Marcado como Resposta Renata Cardoso quinta-feira, 15 de janeiro de 2015 17:11
    quinta-feira, 15 de janeiro de 2015 12:19

Todas as Respostas

  •  string dt = DateTime.Now.ToString("MMddyyyy");
     string hora = DateTime.Now.ToString("HHMM");
    Abraço!

    Nome : Romy G. Moura Cargo: Analista Programador

    quinta-feira, 15 de janeiro de 2015 11:53
  • Não entendi como usar isso no SQL Server?

     string dt = DateTime.Now.ToString("MMddyyyy");
     string hora = DateTime.Now.ToString("HHMM");

    quinta-feira, 15 de janeiro de 2015 11:57
  • Não entendi como usar isso no SQL Server?

     string dt = DateTime.Now.ToString("MMddyyyy");
     string hora = DateTime.Now.ToString("HHMM");

    Ops desculpa não vi que era SQL.

    SELECT     CONVERT(varchar(2), DATEPART(mm, GETDATE())) + CONVERT(varchar(2), DATEPART(dd, GETDATE())) + CONVERT(varchar(4), DATEPART(yyyy, GETDATE())) AS data
    
    SELECT     CONVERT(varchar(2), DATEPART(hh, GETDATE())) + CONVERT(varchar(2), DATEPART(m, GETDATE())) AS hora


    Nome : Romy G. Moura Cargo: Analista Programador

    • Sugerido como Resposta Mr. GMSOFT quinta-feira, 15 de janeiro de 2015 12:14
    quinta-feira, 15 de janeiro de 2015 12:11
  • Não entendi como usar isso no SQL Server?

     string dt = DateTime.Now.ToString("MMddyyyy");
     string hora = DateTime.Now.ToString("HHMM");

    Ops desculpa não vi que era SQL.

    SELECT     CONVERT(varchar(2), DATEPART(mm, GETDATE())) + CONVERT(varchar(2), DATEPART(dd, GETDATE())) + CONVERT(varchar(4), DATEPART(yyyy, GETDATE())) AS data
    
    SELECT     CONVERT(varchar(2), DATEPART(hh, GETDATE())) + CONVERT(varchar(2), DATEPART(m, GETDATE())) AS hora


    Nome : Romy G. Moura Cargo: Analista Programador

    Renata faltou um tratamento, devemos adicionar zero caso retorne o valor com apenas 1 unidade, segue o exemplo.

    SELECT     RIGHT('00' + CONVERT(varchar(2), DATEPART(mm, GETDATE())), 2) + RIGHT('00' + CONVERT(varchar(2), DATEPART(dd, GETDATE())), 2) 
                          + RIGHT('0000' + CONVERT(varchar(4), DATEPART(yyyy, GETDATE())), 4) AS data


    Nome : Romy G. Moura Cargo: Analista Programador

    • Marcado como Resposta Renata Cardoso quinta-feira, 15 de janeiro de 2015 17:11
    quinta-feira, 15 de janeiro de 2015 12:19
  • Renata,

    Você pode utilizar o CONVERT com REPLACE para remover o traço ou então (caso esteja utilizando o SQL Server 2012 ou superior) usar a função FORMAT.

    Segue abaixo dois exemplos para você adaptar à sua necessidade:

     DECLARE @DATAATUAL datetime = '2015-01-15 11:45:10'
    
     SELECT REPLACE(CONVERT(varchar(10), @DATAATUAL, 110),'-','') AS DATA, 
     REPLACE(CONVERT(varchar(6), @DATAATUAL, 108),':','') AS HORA;
    
     SELECT FORMAT(@DATAATUAL , 'MMddyyyy') AS DATA, FORMAT(@DATAATUAL , 'hhmm')
     GO

    Veja um print-screen como Evidência de Teste:

    Para maiores informações veja:

    http://msdn.microsoft.com/pt-br/library/ms187928.aspx

    http://msdn.microsoft.com/pt-br/library/hh213505.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quinta-feira, 15 de janeiro de 2015 13:55
    Moderador
  • Renata,

        Se você estiver utilizando SQL Server 2012 ou superior, utilize a nova função FORMAT. Veja um exemplo:

    DECLARE @d DATETIME = '2011-12-13';
    select format(@d, 'ddMMyyyy')


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008

    quinta-feira, 15 de janeiro de 2015 18:30
    Moderador