none
conversão apenas das data - data e hora RRS feed

  • Pergunta

  • tenho a seguinte data 2013-02-04 10:52:01.367. o que eu queria é fazer a conversão apenas da data. Deixa - la no seguinte formato dd/MM/yyyy. 

    tentei usar o código de saída 131, convert(varchar,@data_hora,131), porém me deu a seguinte saída: 24/03/1434 10:52:01:367AM.

    como fazer?

    segunda-feira, 4 de fevereiro de 2013 12:58

Respostas

  • Segue uma gambi, veja se ajuda:

    select 
    	cast(datepart(D,GETDATE()) as CHAR(2)) + '/' + 
    	cast(datepart(M,GETDATE()) as CHAR(2)) + '/' + 
    	cast(datepart(YEAR,GETDATE()) as CHAR(4)) + ' ' +
    	cast(datepart(HH,GETDATE()) as CHAR(2)) + ':' +
    	cast(datepart(MI,GETDATE()) as CHAR(2)) +  ':' +
    	cast(datepart(SS,GETDATE()) as CHAR(2)) 


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Alexandre Matayosi quarta-feira, 6 de fevereiro de 2013 10:27
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 12:55
    segunda-feira, 4 de fevereiro de 2013 13:45
  • Rafa,

    Uma outra solução:

    --VARIAVEL DATETIME
    DECLARE @DATETIME DATETIME = GETDATE()
    
    SELECT 
    CONVERT(VARCHAR, @DATETIME, 103) + --dd/MM/yyyy
    ' ' + --ESPAÇO
    SUBSTRING(CONVERT(VARCHAR, @DATETIME, 109),13,14) -- HH:MI:SS:MMMAM (ou PM)


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Sugerido como Resposta Alexandre Matayosi quarta-feira, 6 de fevereiro de 2013 10:27
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 12:55
    terça-feira, 5 de fevereiro de 2013 12:37

Todas as Respostas

  • Tente assim:
    select convert(varchar,cast(@data as DATE) ,131) 


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 12:54
    • Não Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 12:55
    segunda-feira, 4 de fevereiro de 2013 13:09
  • Use o formato 103, atende perfeitamente a sua solicitação:

    SELECT CONVERT(VARCHAR,GETDATE(),103)


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    segunda-feira, 4 de fevereiro de 2013 13:09
  • alexandre e vitor, já tentei isso. dessa forma apenas mostra a data no formato dd/MM/yyyy. eu preciso além de converter a data para esse formato, preciso que hora apareça. ou seja, tem, que me retornar: 04/02/2013 10:52:01:367AM. 

    entenderam?

    segunda-feira, 4 de fevereiro de 2013 13:13
  • tente assim;

    convert(char(25),@data_hora,131)
    


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 4 de fevereiro de 2013 13:22
  • me retorna isso 24/03/1434 11:03:35:657AM 

    veja que a data e hora está totalmente errada em reação da data e hora original (2013-02-04 10:52:01.367)

    • Editado rafa-martin segunda-feira, 4 de fevereiro de 2013 13:29 r
    segunda-feira, 4 de fevereiro de 2013 13:27
  • Rafa,

    Parece que a conversão para o formato 131 trabalha apenas para conversão islâmica (no caso Kuwati), eu consegui de uma maneira e achei meio gambiarra:

    SELECT CONVERT(DATETIME,(SELECT CONVERT(VARCHAR,GETDATE(),131)),131)

    Converter para formato islâmico, depois gregoriano.

    Existe até uns sites falando sobre isso:
    http://connect.microsoft.com/SQLServer/feedback/details/776464/sql-server-2008-r2-datetime-format-131
    http://social.msdn.microsoft.com/Forums/en/sqlnetfx/thread/19f8b4ac-4cd2-4784-809e-9234d0053e02

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    segunda-feira, 4 de fevereiro de 2013 13:27
  • cara só que dessa forma me retorna yyyy-MM-dd 11:35:01:348.

    preciso que retorne, dd/MM/yyyy 11:35:01:348

    a minha data na tabela já está como tipo datetime. por isso preciso de retorno em formato brasileiro.
    • Editado rafa-martin segunda-feira, 4 de fevereiro de 2013 13:36 r
    segunda-feira, 4 de fevereiro de 2013 13:35
  • Segue uma gambi, veja se ajuda:

    select 
    	cast(datepart(D,GETDATE()) as CHAR(2)) + '/' + 
    	cast(datepart(M,GETDATE()) as CHAR(2)) + '/' + 
    	cast(datepart(YEAR,GETDATE()) as CHAR(4)) + ' ' +
    	cast(datepart(HH,GETDATE()) as CHAR(2)) + ':' +
    	cast(datepart(MI,GETDATE()) as CHAR(2)) +  ':' +
    	cast(datepart(SS,GETDATE()) as CHAR(2)) 


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Alexandre Matayosi quarta-feira, 6 de fevereiro de 2013 10:27
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 12:55
    segunda-feira, 4 de fevereiro de 2013 13:45
  • Rafa,

    Uma outra solução:

    --VARIAVEL DATETIME
    DECLARE @DATETIME DATETIME = GETDATE()
    
    SELECT 
    CONVERT(VARCHAR, @DATETIME, 103) + --dd/MM/yyyy
    ' ' + --ESPAÇO
    SUBSTRING(CONVERT(VARCHAR, @DATETIME, 109),13,14) -- HH:MI:SS:MMMAM (ou PM)


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Sugerido como Resposta Alexandre Matayosi quarta-feira, 6 de fevereiro de 2013 10:27
    • Marcado como Resposta Ricardo Russo segunda-feira, 18 de fevereiro de 2013 12:55
    terça-feira, 5 de fevereiro de 2013 12:37