php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.09.2005, 17:41  
Benutzer
 
Registriert seit: 15.09.2005
Beiträge: 39
rockinchina
Standard wie sortiert man Datum bei SQL Abfrage?

Ich will ein eigenes EventIndex per MySQL erstellen.

Den Datum hab ich als Datentype Date eingestellt. Nun will ich bei der SQL-Abfrage nach Date sortieren, aber irgendwie haut das nicht hin.

Tabelle:
id | Datum | Ort | Bands

Hab folgendes mal probiert:

Code:
SELECT * FROM Tabelle ORDER BY Datum ASC
SELECT Datum, Ort, Bands FROM Tabelle GROUP BY Datum ASC
ging aber beides nicht. Nun hab ich was ueber CAST() gelesen, da denke ich, vieleicht liegt es daran, dass man den Daten Typ Date nicht bei einer Abfrage so direkt soriteren. Aber wie man das richtig macht, weiss ich leider nicht. Bitte um Hilfe oder einen Verweis, wo ich das nach lesen kann.

danke.
__________________
www.rockinchina.com
rockinchina ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.09.2005, 18:05  
Benutzer
 
Registriert seit: 15.09.2005
Beiträge: 39
rockinchina
Standard

ich musste diese komische Anführung reinbauen, dann klabt die Abfrage, aber warum das so ist, versteh ich immer noch nicht. Vielleicht weil ich in der Tabelle unterschiedliche Typen von Daten habe? Oder wandelt die Anführung `...` den Inhalt in ein String um?

SELECT * FROM Tabelle ORDER BY `When` DESC
__________________
www.rockinchina.com
rockinchina ist offline  
Alt 22.09.2005, 18:07  
Erfahrener Benutzer
 
Registriert seit: 23.02.2005
Beiträge: 211
TheIfrit
Standard

Welche Form hat das Datum denn?

Vielleicht hilft eins von denen ja
http://www.tutorials.de/tutorials27779.html
http://www.little-idiot.de/mysql/mysql-165.html
http://dev.mysql.com/doc/mysql/de/da...culations.html

und arbeite nie... NIE mit *, sondern immer mit den Spalten die du haben willst.
__________________
Wie lautet die adäquate Antwort auf "ihr benehmt euch wie kleine Kinder!" ?

"Er hat Angefangen!"
TheIfrit ist offline  
Alt 22.09.2005, 18:51  
Benutzer
 
Registriert seit: 15.09.2005
Beiträge: 39
rockinchina
Standard

Danke für die Links, werde ich morgen lesen.

das Datum hat den Datentyp Date, welches standartgemäß auf yyyy-mm-dd eingestellt ist.

Hab jetzt das Problem, den Wochentag des jeweiligen Datum rauszubekommen, aber das wird schon klappen.

Danke noch mal.
__________________
www.rockinchina.com
rockinchina ist offline  
Alt 22.09.2005, 19:04  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Zitat:
Hab jetzt das Problem, den Wochentag des jeweiligen Datum rauszubekommen,
DATE_FORMAT()
http://dev.mysql.com/doc/mysql/en/da...functions.html

%a, %w oder %W
DiBo33 ist offline  
Alt 23.09.2005, 04:48  
Benutzer
 
Registriert seit: 15.09.2005
Beiträge: 39
rockinchina
Standard

Hai DiBo33, vielen Dank für den Verweis, nun hab ich das richtig.
__________________
www.rockinchina.com
rockinchina ist offline  
Alt 23.09.2005, 04:56  
Benutzer
 
Registriert seit: 15.09.2005
Beiträge: 39
rockinchina
Standard

PHP-Code:
<?php
$query 
"SELECT `*`, DATE_FORMAT(`When`, '%a') AS WDay FROM `Event_index` ORDER BY `When` DESC";
?>
Ich musste diese Anführung ` einbauen, damit alles funktionierte. Und GROUP BY `When` gibt immer ASC-Rheinfolge, egal ob ich DESC angebe oder ASC

Ich wollte eigentlich noch einen COUNT (`*`) AS Anzahl einbauen, hatte eigentlich auch funktioniert, nur leider hat PHP von 4 gelesene Zeilen nur 3 ausgegeben und bei das COUNT AS Anzahl zeigt nur 1 an.
__________________
www.rockinchina.com
rockinchina ist offline  
Alt 23.09.2005, 09:13  
Gast
 
Beiträge: n/a
Standard

ist kein wunder, das du when mit `...` markieren musst.
http://dev.mysql.com/doc/mysql/en/op...recedence.html
when ist nämlich in mysql ein operator und wenn du when einfach so reinschreibst, geht mysql davon aus, das du den operator meinst.

Zitat:
Zitat von rockinchina
Und GROUP BY `When` gibt immer ASC-Rheinfolge, egal ob ich DESC angebe oder ASC
könnte es sein, das deine mysql version < 3.23.34 ist? weil dann
Zitat:
Zitat von mysql.de
If you use GROUP BY, output rows are sorted according to the GROUP BY columns as if you had an ORDER BY for the same columns. MySQL has extended the GROUP BY clause as of version 3.23.34 so that you can also specify ASC and DESC after columns named in the clause:

SELECT a, COUNT(b) FROM test_table GROUP BY a DESC
falls ja, dann probier mal group by `When` order by `When` DESC
 
Alt 27.09.2005, 12:57  
Benutzer
 
Registriert seit: 15.09.2005
Beiträge: 39
rockinchina
Standard

Hai SSJSonGoku1984,

danke für die Hinweise. Ich benutze jetzt ORDER BY, das funktioniert. Aber mit phpinfo hab ich Folgende Info zu mein MySQL-Verions: Client API version 3.23.49, außerdem, wenn ich GROUP BY in der Abfrage verwende, dann bekomme ich von jeden Wert nur die erste Record angezeigt, anstatte alle Records mit den gleichen Wert.
z. B. von fünf Datensätze, wo When = 2005-10-01, werden nur die erste angezeigt. Weiß nicht warum.

übrigens geht bei mir SELECT *, COUNT(*) nicht gleichzeitig in einer Abfrage ...
__________________
www.rockinchina.com
rockinchina ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage von: Datum bis Datum Renovatio Datenbanken 4 06.06.2008 07:57
Abfrage der 5 aktuellsten Zeilen nach Datum Renovatio Datenbanken 2 01.06.2008 20:00
Abfrage nach Geburtsdatum an bestimmtem Datum maeck Datenbanken 17 25.06.2007 15:49
Datum bezogene mysql abfrage ApfeL Datenbanken 5 22.10.2006 16:03
WHERE abfrage nach Datum Datenbanken 2 06.03.2006 16:42
[Erledigt] Abfrage für &quot;aktuelles Datum ohne Jahreszahl&quot; ? Datenbanken 1 23.10.2005 09:47
Daten nach Datum sortiert ausgeben LordAvalon Datenbanken 11 11.10.2005 16:24
[Erledigt] Abfrage Datum mit gefilterten Werten.... Datenbanken 1 10.09.2005 19:59
Timecode während der Abfrage in lesbares Datum wandeln Datenbanken 3 20.08.2005 20:56
[Erledigt] String in Datum umwandeln und für Abfrage brauchbar machen PHP Tipps 2005 3 12.05.2005 00:24
[Erledigt] zellen abfrage mit php an mysql PHP Tipps 2005 2 02.03.2005 15:37
Abfrage nach Datum selektieren! Boennchen PHP Tipps 2005 8 22.01.2005 13:04
Die neusten Einträge nach dem Datum sortiert anzeigen PHP Tipps 2004 4 18.09.2004 18:25
Abfrage wird falsch sortiert juhuwoorps Datenbanken 2 04.09.2004 19:36
Datum Abfrage themonk PHP Tipps 2004 4 15.08.2004 01:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql datum sortieren, sql nach datum sortieren, sql sortieren nach datum, datum sortieren sql, sql sortieren datum, sql daten sortieren, nach datum sortieren sql, sql abfrage nach datum sortieren, sql order by date, sql datum ordnen, sql sortierung datum, sql date sortieren, sql monate sortieren, sql abfrage datum sortieren, sql sortierung nach datum, sql sort by datum, sql tabelle nach datum sortieren, sql sort datum, sql sort date, sqlite order by date

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.