Jump to content
Mateus Cruz

Converter vachar(10) pra DATE

Recommended Posts

Pessoal,

 

Peguei um sistema para fazer algumas alterações e estou enfrentando um problemão!

 

O sistema tem algumas colunas de data (dt_algumacoisa), com formato VARCHAR(10)...

Porém há registros utilizando data brasileira 00/00/0000 e datas americanas 0000-00-00.

 

Preciso fazer a conversão de todos os registros para DATE e emfim ficar em um formatação apenas..

 

Tentei alguns modos de CONVERT porém sem sucesso...

 

Alguém tem uma solução para isso?

 

Att,

Share this post


Link to post
Share on other sites

Eu faria uma FUNCTION ainda que provisória , se detectar uma barra faz uma regra de conversão senão (um traço)  outra.

 

A síntaxe precisa não sei pois não trabalho com Sql Server.

Share this post


Link to post
Share on other sites

você precisa identificar quais estao com data americana e data no formato Brasil

acho que montar uma funcao como mo Motta disse é uma saida

 

 

Share this post


Link to post
Share on other sites

Lembrei da funcao ISDATE

 

Olha um exemplo:

 


declare @table table (valor varchar(10))

insert into @table values ('18/03/2012')
, ('2018-12-20')

select * 
     , isdate(valor) as conf_data
     , case when isdate(valor)  = 0 then CONVERT(DATE, valor, 103)  else valor end as data_convertida

from @table
 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By tetsuo
      Bom dia pessoal!
      Me orientem aqui, se puderem:
      Estou usando mysql.
      Preciso ordenar Eventos conforme a sequência:
       
      1) os que estão acontecendo: status = started
         (ordem crescente datetime)
      2021-12-07 07:00:00 | started 2021-12-07 08:00:00 | started 2021-12-07 09:00:00 | started  
      2) os que vão acontecer: status = created
         (ordem crescente datetime)
      2021-12-07 13:00:00 | created 2021-12-07 14:00:00 | created 2021-12-07 15:00:00 | created  
      3) os que passaram da data, mas não foram iniciados
         (ordem decrescente datetime)
      2021-12-07 06:00:00 | created 2021-12-07 05:00:00 | created 2021-12-07 04:00:00 | created  
      4) os finalizados: status = finished
         (ordem decrescente datetime)
      2021-12-06 12:00:00 | finished 2021-12-05 17:00:00 | finished 2021-12-04 19:00:00 | finished Estava tentando com case when 
      order by CASE WHEN E.status = 'started' THEN 1 WHEN E.status = 'created' && eventDateTime >= NOW() THEN 2 WHEN E.status = 'created' && eventDateTime < NOW() THEN 3 WHEN E.status = 'finished' THEN 4 ELSE 5 END Mas não sei combinar o THEN 1 + eventDateTime ASC ou DESC
      Será que é possível resolver numa querie só?
      Ou vou ter que fazer 4 consultas distintas?
    • By Negrito
      Olá Pessoal, 
       
      Converti o banco de dados de uma app em ASP Classico de MSSQL para MySQL para redução de custos e percebi que alguns componentes ou recursos não estão mais funcionando devido a não compatibilidade com o MySQL , como por exemplo a função : RecordCount
       
      Já consegui converter e atualizar 95% de aplicação para rodar com o MySQL, mas tem 1 item que esta tirando meu sono e após dias pesquisando, resolvi pedir ajuda.
       
      Segue o meu codigo abaixo , onde estou com problema no resultado dessa operação:
       
      <%
      ...
      Set RS = Server.CreateObject("ADODB.Recordset")
      RS.CursorLocation = 3
      RS.CursorType = 3
      RS.ActiveConnection = Cn
      RS.Open strSQL, Cn, 3, 3
      RS.PageSize = 25
      RS.CacheSize = RS.PageSize
      intPageCount = RS.PageCount
      intRecordCount = RS.RecordCount
          If NOT (RS.BOF AND RS.EOF) Then
      If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount
          If CInt(intPage) <= 0 Then intPage = 1
              If intRecordCount > 0 Then
                  RS.AbsolutePage = intPage
                  intStart = RS.AbsolutePosition
                  If CInt(intPage) = CInt(intPageCount) Then
                      intFinish = intRecordCount
                  Else
                      intFinish = intStart + (RS.PageSize - 1)
                  End if
              End If
          If intRecordCount > 0 Then
              For intRecord = 1 to RS.PageSize
          QntExibicoes = QntExibicoes + Rs.fields("views")
      ...
      %>
       
       
      Já percebi que a função RecordCount não pode ser usada com o MySQL ou pelo menos não é compativel.
       
      A paginação esta funcionando ! 
      Porem , não consigo fazer ele calcular a quantidade de linhas (rows) do MySQL com a função RecordCount e acredito que possa ter alguma outra função que não esta compativel , mas como não conheço MySQL , não posso afirmar.
       
      Enfim, algum pode me dar uma luz ?
       
      Desde já agradeço pela atenção.
       
      Obrigado.
    • By jgasper
      Olá, estou desenvolvendo um sistema de requisições para almoxarifado. Na tela de requisição o usuário terá a opção de incluir o item + quantidade que deseja, e haverá um botão + para poder adicionar mais itens. Porém não consigo pensar em como fazer isso ir para o banco e como salvar isso no pedido. Alguém tem algum exemplo ou pode me ajudar nesse caso?
    • By Sapinn
      Opa galera tudo beleza? Então meu banco está me retomando um erro quando tento inserir nele que é "Dados truncados na coluna valor_produto" essa coluna era do tipo Double quando eu mudei para ela para TEXT funcionou os dados foram inseridos mas eu preciso que ela seja do tipo double. Alguém sabe como resolver????
    • By patrickjnunes1995
      Bom dia, estou tendo dificuldades em recuperar dados de uma tabela do banco de dados, pelo PHP.
      <?php require_once('conexao_bd.php'); $consulta = "SELECT * FROM table"; $con = $mysqli->query($consulta) or die ($mysql->error); echo $dado["nome"]; ?>  
      E o arquivo conexão_bd.php está ok.
       
      Não pude encontrar em nenhuma página pela internet essa solução.
       
      Quero que exiba na página PHP, valores como algum nome, gravado na tabela do banco de dados.
       
      Desde já obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.