Jump to content
tiko165

[Resolvido] MySQL com datas e times

Recommended Posts

tiko165

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

Share this post


Link to post
Share on other sites
JoaoVM

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?

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
tiko165

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

Share this post


Link to post
Share on other sites
HappyHippyHippo
UPDATE `tabela` SET `data` = DATE_FORMAT(STR_TO_DATE(`data`, "%d-%m-%Y"), "Y/%m/%d);


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tiko165

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 :P 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

Share this post


Link to post
Share on other sites
HappyHippyHippo

Exactamente, deu exactamente como se pretendia :)

Só uma pequena correcção no código que forneces-te :P 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 :D


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
tiko165

pois .. um gajo escreve à pressa e depois sai mal :D

Se foi a pressa ou não, o erro também foi menor, nada de grave :)

Mas já agora, Obrigado :)

Edited by tiko165

collectioneuro300px.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.