Zum Inhalt springen

nach Datum sortieren


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...