Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:04 Der er 9 kommentarer og
2 løsninger

Sorter efter "forkert" datoformat

Hej.

Har en datebase hvor jeg har datoer stående som varchars i følgende format: "DD/MM-YYYY"

Er der muligt på en eller anden måde at sortere dette så udtrækket bliver sorteret rigtigt? eller kan dette kun gøres hvis det står som DATE i DB? altså YYYY-MM-DD ?
Avatar billede fsconsult.dk Nybegynder
08. januar 2007 - 15:13 #1
prøv:

SELECT varchardate FROM mytable
ORDER BY STR_TO_DATE(varchardate, '%d/%m-%Y');

(det burde konvertere din varchar-date til en mysql-date, som du kan sortere på)
Avatar billede fsconsult.dk Nybegynder
08. januar 2007 - 15:13 #2
Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:16 #3
prøver lige engang :)
Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:21 #4
$SQLString = "SELECT * FROM table_arr ORDER BY STR_TO_DATE(arr_date, '%d/%m-%Y')";

giver:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(arr_date, '%d/%m-%Y')' at line 1
Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:26 #5
er den funktion ny i mySQL5? for kører Ver 4 her
Avatar billede fsconsult.dk Nybegynder
08. januar 2007 - 15:26 #6
kan være STR_TO_DATE ikke findes i din MySQL version

hvad så med:
SELECT * FROM table_arr
ORDER BY SUBSTRING(arr_date, 7, 4), SUBSTRING(arr_date, 4, 2), SUBSTRING(arr_date, 2, 1)";
Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:29 #7
Så er vi vist tæt på. Får udskrevet følgende nu:

13/01-2007
14/01-2007
17/01-2007
12/02-2007
02/02-2007
Avatar billede fsconsult.dk Nybegynder
08. januar 2007 - 15:31 #8
prøv lige:

SELECT arr_date,SUBSTRING(arr_date, 7, 4)+ SUBSTRING(arr_date, 4, 2)+ SUBSTRING(arr_date, 2, 1)
FROM table_arr
ORDER BY SUBSTRING(arr_date, 7, 4), SUBSTRING(arr_date, 4, 2), SUBSTRING(arr_date, 2, 1)";
Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:36 #9
lavede den sidste SUBSTRING om til 1,2. er vel også det den skal være?`og så virkede det. du skal have tak for hjælpen :)
Avatar billede fsconsult.dk Nybegynder
08. januar 2007 - 15:44 #10
super ;-)
Avatar billede mcgoat Nybegynder
08. januar 2007 - 15:45 #11
men det er vel 1,2 for den kan sortere efter dd til sidst ikke?
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
Computerworld tilbyder specialiserede kurser i database-management

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