Selecionar datas que foram salvas como varchar

8 respostas
T

Boa tarde, tenho um banco de dados (mysql) e uma aplicação que salva as datas como varchar.

As dadas são armazenadas assim: 07022012 (ddMMyyyy).

Como faço pra selecionar as datas em determinado periodo, irei informar o início e fim.

Tem como fazer via SQL? Ou só pela aplicação?

8 Respostas

drsmachado

Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

Rodrigo_Sasaki

drsmachado:
Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

Pensei a mesma coisa hehehe, só que com menos emoção :slight_smile:

Se fosse pra guardar como varchar (que eu não vejo o motivo) poderia pelo menos guardar como yyyyMMdd, né

lucasportela

drsmachado:
Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

HAUAHUAHUAHAUHAUAHUA hoje você está com a macaca hein! Tive que me expressar… mas realmente, nunca tinha visto campo de data como varchar, nem em época de faculdade.

Acredito que a formatação vá ficar assim: SELECT STR_TO_DATE('01052013','%d%m%Y');

Referência : http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

lucasportela

Rodrigo Sasaki:
drsmachado:
Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

Pensei a mesma coisa hehehe, só que com menos emoção :slight_smile:

Se fosse pra guardar como varchar (que eu não vejo o motivo) poderia pelo menos guardar como yyyyMMdd, né

Mesmo com essa formatação eu salvaria como integer para fazer comparações ou ordenações

drsmachado

lucasportela:
drsmachado:
Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

HAUAHUAHUAHAUHAUAHUA hoje você está com a macaca hein! Tive que me expressar… mas realmente, nunca tinha visto campo de data como varchar, nem em época de faculdade.

Acredito que a formatação vá ficar assim: SELECT STR_TO_DATE('01052013','%d%m%Y');

Referência : http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date


A diferença entre eu e qualquer outra pessoa no guj é que eu expresso o que penso (claro que sei que isso me leva a ter fama de mau humorado, grosso, etc).
Enfim, já vi datas sendo salvas como varchar, por falta de conhecimento ou de vontade mesmo.

Rodrigo_Sasaki

lucasportela:
Rodrigo Sasaki:
drsmachado:
Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

Pensei a mesma coisa hehehe, só que com menos emoção :slight_smile:

Se fosse pra guardar como varchar (que eu não vejo o motivo) poderia pelo menos guardar como yyyyMMdd, né

Mesmo com essa formatação eu salvaria como integer para fazer comparações ou ordenações

Ué, e não dá pra fazer isso com varchar?

lucasportela

Rodrigo Sasaki:
lucasportela:
Rodrigo Sasaki:
drsmachado:
Por que a maldita coluna não é date?
Bom, sim.
Aqui tem uma dica…

Pensei a mesma coisa hehehe, só que com menos emoção :slight_smile:

Se fosse pra guardar como varchar (que eu não vejo o motivo) poderia pelo menos guardar como yyyyMMdd, né

Mesmo com essa formatação eu salvaria como integer para fazer comparações ou ordenações

Ué, e não dá pra fazer isso com varchar?

É possível, mas na maioria dos bancos a performance é menor a comparação entre varchar. Frescurite minha… esquece meu comentário ahuahau

freakazoid

Eae ThalesSilva,

Aqui tem uma pog…opa quero dizer “adaptação técnica” que vc pode usar no seu caso:

try {
					String teste="07022012";
					SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
					Date dataTemp= new SimpleDateFormat("ddMMyyyy").parse(teste);
					
					System.out.println(sdf.format(dataTemp));
				} catch (ParseException e) {
					e.printStackTrace();
				}

Sua saída será : 07/02/2012. Espero que tenha ajudado.

abs!

Criado 7 de fevereiro de 2013
Ultima resposta 7 de fev. de 2013
Respostas 8
Participantes 5