Jump to content

[Resolvido] MySQL com datas e times


tiko165

Recommended Posts

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.

collectioneuro300px.png
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

collectioneuro300px.png
Link to comment
Share on other sites

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");
collectioneuro300px.png
Link to comment
Share on other sites

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
Link to comment
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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.