php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-10-2007, 11:22
McFly_Kiel
 Newbie
Links : Onlinestatus : McFly_Kiel ist offline
Registriert seit: Sep 2007
Beiträge: 11
McFly_Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Question Datum vergleichen

Moin, Moin,
stehe mal wieder ein wenig auf der Leitung.

Ich sitze grad an einem Eventkalender. Die Select-Abfragen für 'Datum heute' und für 'Datum heute + 7 Tage' habe ich hinbekommen. Jetzt soll es aber noch eine Abfrage 'Datum von bis' geben. Ich habe in meiner MySQL Tabelle 2 Spalten, ev_start_date und ev_end_date.

Ich habe folgende Where Klausel ausprobiert:

PHP-Code:
WHERE ev_start_date <= '2007-10-03' AND ev_end_date >= '2007-10-07' 
Klar, dabei werden nur Daten berücksichtigt, deren Start Datum kleiner oder gleich 2007-10-03 sind und deren End Datum größer oder gleich 2007-10-07 sind. Der BETWEEN Operator brachte mich auch nicht weiter.

Hat einer ne Idee? Ich sehe im Moment den Wald vor lauter Bäumen nicht.

DANKE

Gruß Mario
Mit Zitat antworten
  #2 (permalink)  
Alt 01-10-2007, 11:49
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie genau stehen denn die Werte in deine Spalten? Verwende doch die mysql-Datums Funktionen
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 01-10-2007, 11:59
McFly_Kiel
 Newbie
Links : Onlinestatus : McFly_Kiel ist offline
Registriert seit: Sep 2007
Beiträge: 11
McFly_Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, bin heute etwas neben der Spur. Erst LESEN, dann antworten.

Ich versuche schon die ganze Zeit die MySQL DAtums Funktionen zu benutzen, komme da aber irgendwie nicht weiter.

Gruß Mario

Geändert von McFly_Kiel (01-10-2007 um 12:09 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 01-10-2007, 12:15
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wie genau stehen denn die Werte in deine Spalten?
Als Date, Datetime oder Timestamp??
Zitat:
Ich versuche schon die ganze Zeit die MySQL DAtums Funktionen zu benutzen, komme da aber irgendwie nicht weiter.
Wie wär's für den Anfang wenn du beschreiben würdest was du bereits probiert hast und was dabei rausgekommen ist (ev Fehlermeldungen würde auch helfen)?

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 02-10-2007, 06:20
McFly_Kiel
 Newbie
Links : Onlinestatus : McFly_Kiel ist offline
Registriert seit: Sep 2007
Beiträge: 11
McFly_Kiel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sie stehen im Date-Format in der Tabelle (2007-10-02)

Um z.B. alle Termine für 'Datum heute' aufzulisten, verwende ich folgenden Select-String:
PHP-Code:
select *, 
date_format(ev_start_date,'%d.%m.%Y') as datum1date_format(ev_end_date,'%d.%m.%Y') as datum2 
FROM events
INNER JOIN categories ON categories
.id events.ev_cat
WHERE ev_start_date 
<= '$today' AND ev_end_date >= '$today' 
ORDER BY ev_start_date ASC
$today ist eine Variable, mit dem aktuellen Datum (Format Y-m-d) als Inhalt.

Um alle Termine für den Zeitraum 'Datum heute + 7 Tage' aufzulisten, verwende ich diesen Select-String:
PHP-Code:
select *, 
date_format(ev_start_date,'%d.%m.%Y') as datum1date_format(ev_end_date,'%d.%m.%Y') as datum2 
FROM events
INNER JOIN categories ON categories
.id events.ev_cat
WHERE ev_start_date BETWEEN 
(ev_start_date <= '$today') AND DATE_ADD('$today'INTERVAL 7 DAY
AND 
ev_end_date >= '$today' 
ORDER BY ev_start_date ASC
Beide Abfragen funktionieren. Jetzt zu meinem Problem:
Ich würde ganz gern eine 'Datum von bis' Abfrage realisieren. Die Where Klausel aus meiner vorhergehenden Antwort bringt mich nicht zum Ziel. Auch eine BETWEEN-Bedingung wie im 2ten Select-String führt mich nicht weiter. Mir gelingt es einfach nicht alle Fälle zu berücksichtigen. Das Start Datum müsste in der Abfrage wie folgt berücksichtigt werden: <=Datum von bis. Das End-Datum müsste so aussehen >= Datum von bis.

Egal was ich ausprobiere, ich bekomme entweder falsche Daten angezeigt, oder die Fehlermeldung: Tabelle nicht vorhanden oder falscher Name!

Hoffe ihr könnt damit was anfangen und mir einen Wink mit dem Gartenzaun geben.

Gruß Mario

Geändert von McFly_Kiel (02-10-2007 um 06:33 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 03-10-2007, 08:37
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was du genau willst, verstehe ich immer noch nicht. Aber noch weniger, was deine zweite Abfrage
Code:
WHERE ev_start_date BETWEEN (ev_start_date <= '$today') AND DATE_ADD('$today', INTERVAL 7 DAY) 
AND ev_end_date >= '$today'
soll. (ev_start_date <= '$today') ergibt 0 oder 1, und das verleichst du mit dem End-Datum, das dürfte dann immer wahr sein. Versuchs mal so
Code:
WHERE DATE(ev_start_date) BETWEEN CURRDATE() AND DATE_ADD(CURRDATE(), INTERVAL 7 DAY)
Das entspricht dann genau deiner ersten Abfrage. Falls ev_start_date vom Type DATE ist, kannst du die DATE()-Funktion weglassen.
Und versuche vielleicht an einem Beispiel zu erklären, was du noch haben willst.
__________________
Gruss
H2O
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:12 Uhr.