Veröffentlicht 2. März 200520 j Ich habe folgendes Datumsformat in meiner sql Tabelle: 01.01.2005-13:40 Ich will danach ordnen, aber er macht mir dann eben z.B. den 01.03. vor den 02.01. muss ich vorher dann das Datum umwandeln? Wie? danke Andreas
2. März 200520 j in welchem Format ist das datum gespeichert? varchar? char? date? datetime? Gruß, Markus
2. März 200520 j varchar(20) Dann hast du gar keine Chance das Ergebnis nach Datum sortiert zu bekommen. Wie auch? Die Datenbank weiss ja nicht, dass das was du da als Text gespeichert hast ein Datum repräsentiert. Willst du das ganze wirklich nach Datum sortieren, so brauchst du auch ein Datumsfeld (DATE, TIMESTAMP, etc.) Info: MySQL Reference Manual :: 11.3.1 The DATETIME, DATE, and TIMESTAMP Types
2. März 200520 j mist..... okay, danke. Dann sortier ich nach irgend was anderes halt und sag dass das so besser sei *g*
2. März 200520 j Hi, wenn das wirklich deine Tabelle oder dein Code ist, ÄNDERE DASS! Oder du wirst von jedem anderen Programmierer der mal mit deinem Code arbeiten muss er*****. :mod: Datumswerte speichert man auch mit entsprechenden Datumstypen der benutzten Datenbank. Gruß Jaraz
2. März 200520 j Dann hast du gar keine Chance das Ergebnis nach Datum sortiert zu bekommen. sag niemals nie. Es ist zwar nicht schön so zu sortieren aber wenn du nicht anders kannst: Du könntest per Substr den Datumsstring in einzelne Felder zerteilen und nach diesen dann sortieren.... Gruß, Markus
2. März 200520 j Du könntest per Substr den Datumsstring in einzelne Felder zerteilen und nach diesen dann sortieren....Ja, aber das ist sowas von hinten durch die Brust ins Auge - das gilt nicht
3. März 200520 j Ja, aber das ist sowas von hinten durch die Brust ins Auge - das gilt nicht Mag sein, aber falls man die Struktur nicht verändern darf ist es eine Möglichkeit . Nicht schön aber selten,... :floet: Ich würd dann den SQL mit den substr usw in eine View packen, somit hast du den ganzen mechanismus nur einmal im ganzen programm und nicht an jeder stelle an der du nach datum sortieren willst.... Gruß, Markus
4. März 200520 j Dann hast du gar keine Chance das Ergebnis nach Datum sortiert zu bekommen. Wie auch? Wie wäre es mit ein wenig nachdenken? <?php function sortieren ($arr_datum) { // berechnen/umstellen/sortien/ausgeben } ?>[/PHP] Und ist es immernoch unmöglich?
4. März 200520 j Wie wäre es mit ein wenig nachdenken? Es ging sich um das Sortieren direkt über SQL. Natürlich kann ich mir erst die Datensätze alle ziehen und danach manuell sortieren - alles kein Problem. Aber was machst du beispielsweise, wenn du 10^6 Datensätze in der Tabelle stehen hast, aber nur die letzten 10^2 anzeigen willst? Mit der Methode manuell sortieren, nachdem die Daten aus der Datenbank gezogen worden sind hättest du so einen Overhead, der es niemals rechtfertigt so vorzugehen. Und es macht immer mehr Sinn, ein Problem an der Wurzel zu packen und (frühzeitig) zu lösen, anstatt zu versuchen im Nachhinein herumzudoktern und doch noch das gewünschte Verhalten von aussen überzustülpen.
4. März 200520 j Es ging sich um das Sortieren direkt über SQL. Natürlich kann ich mir erst die Datensätze alle ziehen und danach manuell sortieren - alles kein Problem. Aber was machst du beispielsweise, wenn du 10^6 Datensätze in der Tabelle stehen hast, aber nur die letzten 10^2 anzeigen willst? Mit der Methode manuell sortieren, nachdem die Daten aus der Datenbank gezogen worden sind hättest du so einen Overhead, der es niemals rechtfertigt so vorzugehen. Und es macht immer mehr Sinn, ein Problem an der Wurzel zu packen und (frühzeitig) zu lösen, anstatt zu versuchen im Nachhinein herumzudoktern und doch noch das gewünschte Verhalten von aussen überzustülpen. Genau meine Meinung! Ich denke das ganze mit einer View zu realisieren, wie oben genannt wäre die beste möglichkeit das ganze zu realisieren, vorrausgesetzt er darf die aktuelle Struktur nicht anpassen. Gruß, Markus
4. März 200520 j Ich denke das ganze mit einer View zu realisieren, wie oben genannt wäre die beste möglichkeit das ganze zu realisieren, vorrausgesetzt er darf die aktuelle Struktur nicht anpassen. Nein, das ist nicht der beste Weg! Wenn ich solch eine Struktur *nachobenzeig* nicht ändern darf dann sollte ich mich nicht damit beschäftigen, wie ich um das Problem herumkomme, in dem ich einen View erstelle oder irgendwelche Sortieralgorithmen im Nachhinein implementiere. Statt dessen muss ich dann zu demjenigen gehen, der für das Änderungs-Verbot verantwortlich ist und muss ihm die Situation so darlegen, wie sie ist - nämlich dass ich hier ein grottenschlechtes Design vor mit habe, was in jeder Hinsicht (Übersicht, Performance, ...) einfach nur in die Tonne gehört. Ich kann mir nicht vorstellen, dass jemand bei einer vernünftigen Begründung dann immer noch sagt "Nein, das muss so bleiben". Der Später-Herumdoktern-Weg mag vielleicht im ersten Moment der Weg des geringsten Widerstandes sein, aber so rennt man immer wieder gegen Wände, die man sich selber aufgestellt hat. Was ist, wenn ich nächste Woche noch irgendeine andere Funktionalität benötige, die sich wieder nicht durchführen lässt wegen vermurkstem Design? Dann geht das ganze wieder von vorne los.
4. März 200520 j Ich kann mir nicht vorstellen, dass jemand bei einer vernünftigen Begründung dann immer noch sagt "Nein, das muss so bleiben". Naja, wenn ich wegen solch einem Fehler mehrere Programme ändern muss die schon mit dieser Struktur arbeiten wäre das schon ein Grund.... Oder wenn in meinem aktuellen Programm deshalb an sehr vielen Ecken und Kanten änderungen anfallen, dann wäre das auch ein Grund... Oder wenn ich dazu ein Programm ändern müsste das schon Jahrelang in der aktuellen Version 100%tig läuft und man durch solch einen Eingriff vielleicht ungewollte Bugs hervorruft.... Oder, Oder, Oder... Gruß, Markus
5. März 200520 j Vllt. ne eigene Funktion in SQL Schreiben und diese nutzen? Fragt mich aber nun nicht wie man das macht, denn darin hab ich nicht so unbedingt die Ahnung aber das sollte auch möglich sein. Müsste ich mal bei der nächsten PHP-UG ansprechen. Naja dafür muss auch der kleine MySQL-Mensch da sein
5. März 200520 j Vllt. ne eigene Funktion in SQL Schreiben und diese nutzen? Fragt mich aber nun nicht wie man das macht, denn darin hab ich nicht so unbedingt die Ahnung aber das sollte auch möglich sein. Müsste ich mal bei der nächsten PHP-UG ansprechen. Naja dafür muss auch der kleine MySQL-Mensch da sein hm das wäre auch eine Möglichkeit. Einfach eine stored prcedure bzw. function schreiben: http://dev.mysql.com/doc/mysql/en/stored-procedures.html geht aber nur mit MySQL 5!! Stored procedures and functions are a new feature in MySQL version 5.0. Gruß, Markus
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.