Avatar billede wolstrup Nybegynder
09. juni 2006 - 10:27 Der er 9 kommentarer og
1 løsning

fra varchar til date i mysql

Hej

Har et lille problem. Jeg har i min database en table som er varchar(45), der er rigtig mange posteringer i denne table, posteringerne er datoer, f.eks. "21-09-2005". Nu vil jeg så gerne kunne lave en søgning i disse datoer, hvilket betyder at jeg skal konvertere til date istedet for varchar(45). Skal selvfølgelig beholde mine data, nogen let måde at gøre dette på?

På forhånd tak
Avatar billede jakobdo Ekspert
09. juni 2006 - 10:39 #1
Du kunne måske bruge denne sql:
UPDATE dato_tabel SET dato = CONCAT(RIGHT(dato,4),"-",SUBSTRING(dato,4,2),"-",LEFT(dato,2))
Avatar billede wolstrup Nybegynder
09. juni 2006 - 10:52 #2
Du er sgu da pisse sej :-) Smid et svar
Avatar billede jakobdo Ekspert
09. juni 2006 - 10:55 #3
Svar!
Avatar billede erikjacobsen Ekspert
09. juni 2006 - 11:00 #4
Det er bestemt måden, når nu formatet er så fast. Umiddelbart vil jeg sige at du kan sikre dig lidt mod datatab, ved lige at lave et mellemfelt, sådan ca. som i
http://zpiff.dk/mysql/fromvarchar
Avatar billede erikjacobsen Ekspert
09. juni 2006 - 11:03 #5
Og jeg kan se, at den første løsning her blot bytter rundt på dag, måned, år, men ikke laver det til et DATE-felt. Det kan anbefales.
Avatar billede jakobdo Ekspert
09. juni 2006 - 11:05 #6
Takker for point.
Erikjacobsen: Kan man ikke lave konverteringen, og så bagefter ændre datetype på feltet til date?
Avatar billede erikjacobsen Ekspert
09. juni 2006 - 11:10 #7
Jo, selvfølgelig. Kræver blot en ALTER mere.
Avatar billede wolstrup Nybegynder
09. juni 2006 - 11:26 #8
Har lavet dem om til DATE, men synes ikke rigtig jeg kan få det til at virke rigtigt. Bruger:

$search_kunder = mysql_query("SELECT * FROM kunder WHERE id != '0' AND dato BETWEEN = '$dato1' AND '$dato2';");
Avatar billede erikjacobsen Ekspert
09. juni 2006 - 11:29 #9
Husk altid at få dine fejl at se:  ... or die(mysql_error());

Det skal nok være

SELECT * FROM kunder WHERE id != '0' AND dato BETWEEN '$dato1' AND '$dato2'
Avatar billede wolstrup Nybegynder
09. juni 2006 - 11:32 #10
Takker mange gange...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester