Datumsvergleich innerhalb 7 Tagen
Hallo SQL-Master.
Ich bin mir einigermaßen sicher, dass ihr Profis eine schöne, saubere Lösung für mein kleines SQL-Problem habt, sonst würde ich mir da sicher was zusammen murksen: In meiner Tabelle gibt es ein Feld 'vondatum', Typ Variant, Daten = Datums im UNIX-Zeitstempel. Meine Abfrage soll mir auf alle Fälle den nach aktuellem Tagesdatum nächsten Datensatz liefern oder die nächsten BEIDEN Datensätze falls das Datum von Satz1 zu Satz2 nicht mehr als 7 Tg auseinanderliegt. Ich hoffe, ich habe mich klar genug ausgedrückt. Klar geht das einfach mit '...order by vondatum limit 2', aber dann weiß ich noch nicht, ob beide Sätze nur maximal 7 Tage auseinanderliegen. Vielleicht habt ihr ja was Schönes für mich. Ansonsten wünsche ich Euch auf jeden Fall schon Frohe Weihnachten und einen Guten Rutsch. Bernhard aus Schwerte |
AW: Datumsvergleich innerhalb 7 Tagen
Hi
was ist Variant? Zitat:
Zitat:
Code:
select * from tabelle where daten>=UNIX_TIMESTAMP(CURDATE()) and daten<=UNIX_TIMESTAMP(date_add(CURDATE(),INTERVAL 7 DAY)) limit 2 Ckaos |
AW: Datumsvergleich innerhalb 7 Tagen
Danke für die Antwort. Ich hau da manchmal Visual Basic, SQL und php durcheinander.
Ich speichere den UNIX-Timestamp bisher in ein varchar-Feld der SQL-Datenbank. Ist das gut so oder gibt es da sinnvollere Datentypen für die Spalte, die dann bessere Auswertungen des Datums ermöglichen ?? |
AW: Datumsvergleich innerhalb 7 Tagen
Zitat:
|
AW: Datumsvergleich innerhalb 7 Tagen
Zitat:
cx |
AW: Datumsvergleich innerhalb 7 Tagen
Ich danke euch für eure Hilfe.
Bisher hatte ich mein Datum in einem DATE-Feld gespeichert. Der Einfachheit halber bin ich jetzt im Zuge einer Neuprogrammierung vom DATE-Feld zum VARCHAR-Feld und Datumswerte im UNIX-Zeitstempelformat gewechselt. Mußte aber nun feststellen, dass mir da eine ganze Menge SQL-Datumsauswertungen schlecht oder garnicht möglich waren und bin jetzt wieder beim Date-Feld gelandet. Na ja, so ist das halt, wenn man als Halbwissender an solche Sachen rangeht. Aber dafür gibts ja auch dieses wirklich tolle Forum mit vielen erstklassigen und hilfsbereiten Experten. Vielen Dank nochmal und einen Guten Start ins neue Jahr. Bernhard aus Schwerte |
AW: Datumsvergleich innerhalb 7 Tagen
Zitat:
|
AW: Datumsvergleich innerhalb 7 Tagen
Na ja, da ist immer noch das Problem, welches ich im Eingang geschildert habe. Der Vorschlag von Ckaos funktioniert so nicht oder ich kriegs nicht hin. Und dann wäre ja noch die Sache mit Datums vor 1970. Die gehen ja sowieso nicht im Unix-Timestamp. Also ist auf jeden Fall das Date-Format sinnvoll.
Zu meinem oben geschilderten Problem: Benötige also eine Abfrage die mir den vom aktuellen Datum den nächsten Datensatz liefert. PHP-Code:
Falls von diesem gelieferten vdatum aus gesehen in den weiteren 7 Tagen noch weitere Veranstaltungen anstehen (max 2) möchte ich diese noch dazu geliefert bekommen. Im mysql_fetch_object sollten sich also zwischen 0 und 3 Datensätze befinden. Zur Zeit lese ich die nächsten drei Datensätze in ein array und vergleiche diese dann über php-code. Vielleicht gibt es ja eine feine sql-Lösung. Wäre schön und ich hab wieder was gelernt. Bis dann Bernhard |
AW: Datumsvergleich innerhalb 7 Tagen
HI
Zitat:
Code:
$sql = "SELECT * FROM msc_infos WHERE vdatum >= CURDATE() and vdatum <= date_add(CURDATE(),INTERVAL 7 DAY) ORDER BY vdatum LIMIT 3;" <= date_add(CURDATE(),INTERVAL 7 DAY) -> alles was kleiner oder gleich jetzt plus 7 tagen ist date_add = etwas zu einem Datum addieren interval x = Intervallwert DAY = Tage siehe MYSQL mfg Ckaos |
AW: Datumsvergleich innerhalb 7 Tagen
Vielen Dank, das du mir nochmal helfen möchtest, dein Vorschlag funktioniert zwar, aber nicht so wie ich es brauche.
Denn so wie ich deinen sql-string verstehe addierst du im date_add 7 Tage zum aktuellen Datum hinzu. Ich erhalte also nur Datensätze, wenn diese sich innerhalb von sieben Tagen befinden. Ich schreibe mein Anliegen mal so auf: - auf jeden Fall den datumsnächsten Datensatz, egal was für ein vdatum - Datensatz2 nur, wenn vdatum1 zu vdatum2 < 7 Tage - Datensatz3 nur, wenn vdatum1 zu vdatum3 < 7 Tage* *meinetwegen kann hier auch vdatum2 mit vdatum3 verglichen werden, das wäre egal Der Sinn dahinter ist der: auf unserer Webseite gibt es ein klar begrenztes Feld für Werbung unserer nächsten großen Sportveranstaltung auch wenn diese noch Monate in der Zukunft liegt. Allerdings haben wir an einem Wochenende sogar zwei oder drei große Veranstaltungen. Daher sollen mindestens ein und maximal drei Werbebanner angezeigt werden können, wenn diese Veranstaltungen innerhalb von 7 Tagen liegen. Wenn die Veranstaltungen länger als 7 Tage auseinander liegen reicht die Anzeige von einer, der nächsten Veranstaltung, da die Werbezeitspanne für die übernächsten Veranstaltungen ausreichend bleiben. Irgendwie habe ich die Befürchtung, dass das mit sql nicht geht, bin mal gespannt. Für eure Bemühungen bedanke ich mich schon mal sehr. Viele Grüße Bernhard |
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:44:26 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.