CONVERTER VARCHAR EM DATE MYSQL
Só tenho acesso ao Banco via programação ou HeidySQL
se for possÃvel... me falem
obrigado.
tem monte de jeito de fazer, depende muito de como a data está sendo mostrada.
se não tiver como exportar pelo sgbd, usa o proprio vb.
while datareader.read
[Ô]update Tabela SET data =[ô][Ô] & format(datareader([Ô]data[Ô]),[Ô]yyyy-MM-dd[Ô]) & [Ô][ô] WHERE data =[ô][Ô] & datareader([Ô]data[Ô]) & [Ô][ô];[Ô]
end while
se fosse possÃvel sem o WHILE seria interessante saber
Citação::
Se alterar (alter column) a estrutura da tabela, já com os dados contidos, não resolveria? Dependendo de como as datas estejam formatadas, talvez você consiga desta forma. Se reclamar, tu poderia retirar as restrições impostas para a tabela, alterar a estrutura da coluna, depois trazer de volta as restrições, como estava anteriormente.
Aà vai depender mesmo do formato já que o padrão do MySql é yyyy-mm-dd. é muito provavel que o cara já deixou em varchar por preguiça de converter pra dd/mm/yyyy.
Se for isso mesmo DAMACENO, o negócio vai ser fazer do jeito que o Kerplunk disse! Cria um novo campo e salva todas as datas no formato certo pra não dar zica.
Citação::
XLEGENDARY, gostaria de saber se tem algum modo de fazê-lo se precisar dar um while para percorrer todos os registros e inserir ou alterar um a um, pois fazer de um a um é fácil:
while datareader.read
[Ô]update Tabela SET data =[ô][Ô] & format(datareader([Ô]data[Ô]),[Ô]yyyy-MM-dd[Ô]) & [Ô][ô] WHERE data =[ô][Ô] & datareader([Ô]data[Ô]) & [Ô][ô];[Ô]
end while
se fosse possÃvel sem o WHILE seria interessante saber
O que eu quis dizer é exatamente o que o KERPLUNK disse e não um por um.
outra coisa, se vc poe dentro do while o seu datareader e na condição where vc diz que quer alterar o campo com a data estipulada pelo seu parametro, claramente ele irá alterar um por um
verifica primeiro quais os registros serão afetados pela mudança do campo se for mssql usa isdate, se for mysql str_to_date.
se nenhum for afetado então basta vc criar um novo campo date e passar os valores do campo antigo para o novo. Se houver afetados, converta para o formato permitido e lance os dados na nova tabela, a chance de dar erro existe, porém é minima.
Eu passei 3 milhoes ++ de registros de tabelas paradox para mysql onde campos varchar eram usados para salvar data e resolvi tudo com uma única query convertendo os valores e excluindo a tabela antiga após criar uma nova.
os dados estão formato dd/MM/yyyy, então terei que convertê-los para yyyy-MM-dd.
hoje não dá mais tempo pra eu fazer nada, saio em 20 minutos e tenho curso ainda a noite.
Amanhã vou analisar as respostas com calma e ver qual daria mais certo. ainda bem que tenho como fazer um backup da tabela caso dê errado rsrsrs
amanhã devo encerrar o tópico.
obrigado a todos pela ajuda
Pessoal, segui o conselho do KERPLUNK e criei um novo campo no formato Date, usei essa SQL só que não retorna resultado, numa cópia da tabela usei no proprio campo e apagou todos os dados do campo, se puderem me dizer o que há de errado...
[Ô]UPDATE 'fichas_Vel' SET 'Data1' = str_to_date('data', [ô]%y-%M-%d[ô])[Ô]
também usei
[Ô]UPDATE 'fichas_Vel' SET 'Data' = str_to_date('data', [ô]%y-%M-%d[ô])[Ô]
essa ultima apagou os dados do campo rsrs