tiko165 Posted March 12, 2013 at 03:35 PM Report #498878 Posted March 12, 2013 at 03:35 PM Quando começei a criar o meu website, na Base de dados, a data coloquei em tipo Varchar, gravando as datas em "DD/MM/AAAA" e queria alterar para Date, para o formato "AAAA/MM/DD". Se so alterar para Date, a tabela da data fica automaticamente em vazio, pais o formato da data esta diferente, como tal gostava de saber se existe alguma função que faça isso no SQL.
JoaoVM Posted March 12, 2013 at 03:46 PM Report #498882 Posted March 12, 2013 at 03:46 PM Hum..para já não deverias ter guardado os registos da data em varchar, agora não terias esse problema..outra coisa tens muitos registos?
yoda Posted March 12, 2013 at 04:06 PM Report #498890 Posted March 12, 2013 at 04:06 PM (edited) Há-de ser algo assim : UPDATE `tabela` SET `data` = STR_TO_DATE(`data`, "%Y/%m/%d"); Depois disto feito mudas o tipo do campo na tabela. Edited March 12, 2013 at 04:07 PM by yoda 1 Report before you post, what have you tried? - http://filipematias.info sense, purpose, direction
HappyHippyHippo Posted March 12, 2013 at 04:09 PM Report #498891 Posted March 12, 2013 at 04:09 PM se os campos estão realmente todos bem formatados como dizes, podes fazer o seguinte para uma tabela com o nome "tabela" e o campo a ser alterado com o nome "data" update tabela where data = concat(substr(data, 7, 4), '/', substr(data, 4, 2), '/', substr(data, 1, 2)); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
tiko165 Posted March 12, 2013 at 04:52 PM Author Report #498900 Posted March 12, 2013 at 04:52 PM Correcção, na BD consta assim: "DD-MM-AAAA". Há-de ser algo assim : UPDATE `tabela` SET `data` = STR_TO_DATE(`data`, "%Y/%m/%d"); Depois disto feito mudas o tipo do campo na tabela. Testei como informas-te, mas as datas ficam todas alteradas, tenho datas de 2001 como de 2020 :s Tentei com os "-" como informei que consta na minha BD. se os campos estão realmente todos bem formatados como dizes, podes fazer o seguinte para uma tabela com o nome "tabela" e o campo a ser alterado com o nome "data" update tabela where data = concat(substr(data, 7, 4), '/', substr(data, 4, 2), '/', substr(data, 1, 2)); Com esse update, não consegui grande resultado :s
HappyHippyHippo Posted March 12, 2013 at 05:02 PM Report #498902 Posted March 12, 2013 at 05:02 PM UPDATE `tabela` SET `data` = DATE_FORMAT(STR_TO_DATE(`data`, "%d-%m-%Y"), "Y/%m/%d); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
tiko165 Posted March 12, 2013 at 05:11 PM Author Report #498904 Posted March 12, 2013 at 05:11 PM UPDATE `tabela` SET `data` = DATE_FORMAT(STR_TO_DATE(`data`, "%d-%m-%Y"), "Y/%m/%d); Exactamente, deu exactamente como se pretendia 🙂 Só uma pequena correcção no código que forneces-te 😛 Faltando umas aspas e "%" para o Y UPDATE `ce_news` SET `news_date` = DATE_FORMAT(STR_TO_DATE(`news_date`, "%d-%m-%Y"), "%Y-%m-%d");
HappyHippyHippo Posted March 12, 2013 at 05:20 PM Report #498905 Posted March 12, 2013 at 05:20 PM Exactamente, deu exactamente como se pretendia 🙂 Só uma pequena correcção no código que forneces-te 😛 Faltando umas aspas e "%" para o Y UPDATE `ce_news` SET `news_date` = DATE_FORMAT(STR_TO_DATE(`news_date`, "%d-%m-%Y"), "%Y-%m-%d"); pois .. um gajo escreve à pressa e depois sai mal 😄 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
tiko165 Posted March 12, 2013 at 05:30 PM Author Report #498907 Posted March 12, 2013 at 05:30 PM (edited) pois .. um gajo escreve à pressa e depois sai mal 😄 Se foi a pressa ou não, o erro também foi menor, nada de grave 🙂 Mas já agora, Obrigado 🙂 Edited March 12, 2013 at 05:31 PM by tiko165
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now