PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   Sortieren mit Datumsformat (https://www.php-resource.de/forum/sql-datenbanken/51374-sortieren-mit-datumsformat.html)

fragezurseite 03-03-2005 13:58

Sortieren mit Datumsformat
 
Hallo,

ich frage mit folgendem SQL-Statement eine Tabelle ab:

PHP-Code:

SELECT date_format(Daum'%d.%m.%Y') AS Datum 


nun würde ich es gerne auch nach dem Datum sortieren:

PHP-Code:

SELECT date_format(Daum'%d.%m.%Y') AS Datum ORDER BY Datum ASC 

funktioniert natürlich nicht, es wird zwar nach den Tagen, aber nicht nach den Monaten und Jahren sortiert.

Gibt es da eine Möglichkeit, vielleicht so irgendwas in der Art:

PHP-Code:

SELECT date_format(Daum'%d.%m.%Y') AS Datum ORDER BY date_format(Daum'%d.%m.%Y'ASC 

DAnke

Thomas

XGremliN 03-03-2005 14:02

Kennst du den Datentyp DATE?
Wenn ja, nutze ihn.
Wenn nein, kennst du das amerikanische Datumsformat? (YYYY-MM-DD)
Sortiere danach.

fragezurseite 03-03-2005 14:10

Date gibt doch das aktuelle Systemdatum zurück, wie soll mir das bei meinem Problem helfen?

Gruß Thomas

mrhappiness 03-03-2005 14:14

Die PHP-Funktion date kann dir das aktuelle Datum zurückliefern

Der mysql-Datentyp DATE tut das nicht: http://dev.mysql.com/doc/mysql/en/column-types.html

Sebastian W 03-03-2005 14:16

SELECT date_format(Daum, '%d.%m.%Y') AS Datum ORDER BY Daum DESC

XGremliN 03-03-2005 14:23

Zitat:

Original geschrieben von Sebastian W
SELECT date_format(Daum, '%d.%m.%Y') AS Datum ORDER BY Daum DESC
Was bitte willst du uns damit sagen?

asp2php 03-03-2005 14:29

Zitat:

Original geschrieben von XGremliN
Was bitte willst du uns damit sagen?
würdest du bitte die Augen mal öffnen!

Er sortiert nach der Spalte Daum anstatt wie vorhin nach Datum, welche durch die Formatierung in Form von 'DD.MM.YYYY' stand.

fragezurseite 03-03-2005 14:44

Sorry, aber das raff ich jetzt net,

die Datumsspalte hat das Format "Date" und speichert das in Form von "YYYY-DD-MM", nun wandle ich dieses Format mit "date_format(Datum, '%d.%m.%Y')" nach "DD.MM.YYYY" um und kann es so natürlich nicht mehr nach dem Format "YYYY.DD.MM" (also mit ORDER BY Datum ASC) sortieren...

Das hier ist ja kein Problem:
PHP-Code:

SELECT date_format(Datum'%d.%m.%Y') AS Datum 

Doch wie kann es jetzt halt sortieren (vielleicht wieder umwandeln?)

asp2php 03-03-2005 14:47

mach mal so:


SELECT date_format(Datum, '%d.%m.%Y') dtDatum from ... order by Datum

fragezurseite 03-03-2005 14:51

Na klar... nur logisch... Funzt.

Thanks...

Thomas

Sebastian W 03-03-2005 14:52

Kurs gesagt:

Das Datum ist in dem bestehenden Format (DATE) zum sortieren geeignet. Eine Konvertierung mit date_format() wird daher nur für die Ausgabe benötigt.

fragezurseite 03-03-2005 15:42

Jetzt habe ich aber doch noch mal ein Fragchen:

Also ich erstelle nun ein Recordset mit dem SQL-Statement:

"SELECT date_format(Datum, '%d.%m.%Y') dtDatum from ... order by Datum"

Doch wie füge ich es jetzt ein?
Momentan habe ich das so in einer Schleife:
PHP-Code:

echo $row_RsTermine['Datum']; 

doch so zeigt er die Datensätze nicht sortiert an... wie kann ich das dtDatum nun einbinden? Einfach schreiben:
PHP-Code:

echo $row_RsTermine['dtDatum']; 

funzt nicht...

asp2php 03-03-2005 15:46

Zitat:

Original geschrieben von fragezurseite
Einfach schreiben:
PHP-Code:

echo $row_RsTermine['dtDatum']; 

funzt nicht...

was heißt "funz nicht"?
- es kommt nichts raus?
- es kommt was raus aber ... ?
Bedenke, dass du amerikanisch sortiert, aber die Daten, die du ausliest, ist in deutschen Format.

fragezurseite 03-03-2005 16:50

hm...

Aber es muss doch egal sein ob ich amerikanisch oder deutsch sortiere, Datum bleibt Datum?!?

Müßte er mit jetzigem SQL-Statement nicht nach der Datumsspalte sortieren (amerikanisch) und dann nacheinander, mit Date_Format ins deutsche umgewandelt, ausgeben?

wahsaga 03-03-2005 17:01

Zitat:

Original geschrieben von fragezurseite
Müßte er mit jetzigem SQL-Statement nicht nach der Datumsspalte sortieren (amerikanisch) und dann nacheinander, mit Date_Format ins deutsche umgewandelt, ausgeben?
sollte man das nicht einfach kurz ausprobieren, anstatt irgendwelche "müsste"-fragen zu stellen ...?


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:34 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG