Nur Datensätze > heutigem datum

hallo,
für eine veranstaltungsdatenbank.
ich will aber nur die veranstaltungen die in der zukunft (>heute) stattfinden.
momentan werden alle angezeigt.
sorry, ich bin sql-neuling und meine versuche blieben erfolglos. danke-

„select $database_table.show_id, $database_table.month, $database_table.day, $database_table.year, $database_table.location, $database_table.details, $database_table.venue, $database_table.artist_id, $database_table_artists.artist_id, $database_table_artists.artist_name
from $database_table, $database_table_artists
where $database_table.artist_id = $database_table_artists.artist_id
order by year, month, day asc“

hallo,
für eine veranstaltungsdatenbank.
ich will aber nur die veranstaltungen die in der zukunft
(>heute) stattfinden.
momentan werden alle angezeigt.
sorry, ich bin sql-neuling und meine versuche blieben
erfolglos. danke-

"select $database_table.show_id, $database_table.month,
$database_table.day, $database_table.year,
$database_table.location, $database_table.details,
$database_table.venue, $database_table.artist_id,
$database_table_artists.artist_id,
$database_table_artists.artist_name
from $database_table, $database_table_artists
where $database_table.artist_id =
$database_table_artists.artist_id

and $database_table.year >= 2003
and $Database_table.month >= 4
and $database_table.day > [heutiges datum eingeben]

order by year, month, day asc"

Besser natürlich, wenn Du das Datum mit einem DATE Feld speicherst und dann mit (je nach Datenbank) SYSDATE (Oracle) oder CURRENT TIMESTAMP vergleichst.

Peter

Was für eine Datenbank verwendest du? [oT]
Dumdidei

Hallo

Achtung! Diese Lösung funktioniert nicht:

and $database_table.year >= 2003
and $Database_table.month >= 4
and $database_table.day > [heutiges datum eingeben]

Wenn zum Beispiel [heutiges datum eingeben] = 15 ist, dann werden für jeden Monat im 2003 welcher >= 4 ist nur die Datensätze deren Tag > 15 ist angezeigt. Ab 2004 werden sogar noch die Monate Januar bis März unterdrückt.

Die saubere Lösung wäre das Datum als Date zu speichern. Ansonsten muss das Datum vor dem Vergleich zu einem String zusammnegefügt werden:
YYYYMMDD.

Mit freundlichen Grüssen
Peter

Die saubere Lösung wäre das Datum als Date zu speichern.
Ansonsten muss das Datum vor dem Vergleich zu einem String
zusammnegefügt werden:
YYYYMMDD.

hallo,
wie füge ich die 3 felder zu einem string zusamenn?
wie vergleiche ich das dann mit dem aktuellen datum?
ich arbeite mit einer mysql datenbank und php.
gruß+danke
banker

MySQL mit PHP

http://www.mysql.com/doc/en/String_functions.html

hier ein Link.

Der Operator lautet CONCAT.

Damit müsste es klappen.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

wie vergleiche ich das dann mit dem aktuellen datum?

danke
banker

wie füge ich die 3 felder zu einem string zusamenn?

Falls es da nur um das Problem mit dem aktuellen Monat geht, das kriegst du auch so hin (hier z. B. für den 15.05.2004):

year >= 2004 AND ( month >= 6 OR ( month = 5 AND day >= 15 ) )

Grüße, Robert

hallo,
habe jetzt folgendes versucht:

select $database_table.show_id, $database_table.month, $database_table.day, $database_table.year, $database_table.location, $database_table.details, $database_table.venue, $database_table.artist_id, $database_table_artists.artist_id, $database_table_artists.artist_name
from $database_table, $database_table_artists
where $database_table.artist_id = $database_table_artists.artist_id and CONCAT(year,’-’,month,’-’,day) > 2004-03-20

aber leider wirft es mir auch termine vom 20.03.2004 aus…
mit CURDATE geht es auch nicht.

stimmten die felderangaben innerhalb von CONCAT ???

ich denke es funktioniert deshalb nicht da die nullen im datum nicht mitgespeichert werden

CONCAT( year , ‚-‘, month , ‚-‘, day ) wirft folgendes aus:
2004-3-20

kann ich evtl den feldtyp (INT) wechseln?

hi!

ich denke es funktioniert deshalb nicht da die nullen im datum
nicht mitgespeichert werden

CONCAT( year , ‚-‘, month , ‚-‘, day ) wirft
folgendes aus:
2004-3-20

das ist auch der grund: der string „2004-3-20“ ist größer als der string „2004-03-20“

kann ich evtl den feldtyp (INT) wechseln?

du wirst die selben probleme haben - außer du prüfst die stellen des monats und tages …

ich würde mal nach datumsfunktionen nachschaun - irgendein mache_aus_dem_string_ein_datum_mit_dem_mitgegebenen_format

grüße,
tomh