SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.10.2009, 14:02:46
nummersieben nummersieben ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 53
Beiträge: 4
2 Datumsbereiche miteinander vergleichen

Hallo zusammen,

ich möchte gerne für ein Projekt feststellen, ob ein bestimmter Zeitbereich (z.b. 06.10.09 10:00 - 06.10.09 12:00 ) sich mit einem anderen (z.b. 06.10.09 9:00 - 06.10.09 11:00 ) überschneidet.

In der Datenbank ist eine Tabelle, in der Datensätze mit Anfangs und Enddatum gespeichet sind. Der typ ist DATETIME.

Wenn ein Benutzer nun einen neuen Datensatz anlegen möchte, soll geprüft werden ob sich der neue Datensatz mit einem in der Datenbank befindlichen überschneidet.

Zu beachten wäre noch , das es an einem Tag auch mehrere Zeiträume geben kann.
z.b.

06.10.09 08:00 - 06.10.09 12:00
06.10.09 14:00 - 06.10.09 17:00

Auch könnte der Zeitraum des neuen Datensatzes größer und außerhalb eines schon in der Datenbank befindlichen Datensatz liegen.

z.b.
in der Datenbank vorhanden :06.10.09 12:00 - 06.10.09 14:00
neuer Datensatz: 06.10.09 10:00 - 06.10.09 17:00

Bisher habe ich keinen Lösungsansatz finden können und hoffe das ihm mir helfen könnt.

Gruß Jens
Mit Zitat antworten
  #2  
Alt 06.10.2009, 14:22:17
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: 2 Datumsbereiche miteinander vergleichen

Wenn ich das richtig verstanden habe, sollte diese Abfrage das gewünschte Resultat anzeigen:

Code:
SELECT COUNT(*)
  FROM deine_tabelle
 WHERE ('2009-10-06 10:00:00' BETWEEN anfang AND ende)
    OR ('2009-10-06 17:00:00' BETWEEN anfang AND ende)
Wenn COUNT höher als 0 ist, existiert bereits ein Eintrag in diesem Zeitraum.

Geändert von Crisps (06.10.2009 um 14:35:37 Uhr)
Mit Zitat antworten
  #3  
Alt 06.10.2009, 14:24:53
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: 2 Datumsbereiche miteinander vergleichen

Zitat:
Zitat von nummersieben Beitrag anzeigen
Bisher habe ich keinen Lösungsansatz finden können
soso... versuchs mal mit SELECT, WHERE und geeigneten vergleichsoperatoren. gute tutorials (für einsteiger) gibts darüber hinaus unter punkt d unserer forenregeln.

cx
Mit Zitat antworten
  #4  
Alt 06.10.2009, 14:58:14
nummersieben nummersieben ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 53
Beiträge: 4
AW: 2 Datumsbereiche miteinander vergleichen

@Crisps

Im Prinzip meine ich das schon, aber wenn ein Zeitraum
kleiner ist als der des neue Datensatzes bleibt COUNT 0

in der Datenbank vorhanden :06.10.09 12:00 - 06.10.09 14:00
neuer Datensatz: 06.10.09 10:00 - 06.10.09 17:00

hier liegen 10:00 und 17 Uhr außerhalb des vorhandenen Datensatzes und der neue Datensatz würde dann geschrieben, was aber ja falsch ist.

Code:
SELECT COUNT(*)
  FROM buchung
 WHERE ('2009-10-06 10:00:00' BETWEEN von_datum AND bis_datum)
    OR ('2009-10-06 17:00:00' BETWEEN von_datum  AND bis_datum)
@cortex

Danke für dein Hinweis, ich kenne die sql Befehle. Ich stelle die nächste Frage Professioneller.
Mit Zitat antworten
  #5  
Alt 06.10.2009, 15:01:04
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: 2 Datumsbereiche miteinander vergleichen

Zitat:
Zitat von nummersieben Beitrag anzeigen
Ich stelle die nächste Frage Professioneller.
einverstanden. leider hattest du keinen eigenen ansatz vorgezeigt...

cx
Mit Zitat antworten
  #6  
Alt 06.10.2009, 15:11:10
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: 2 Datumsbereiche miteinander vergleichen

Zitat:
Zitat von nummersieben Beitrag anzeigen
@Crisps

Im Prinzip meine ich das schon, aber wenn ein Zeitraum
kleiner ist als der des neue Datensatzes bleibt COUNT 0

in der Datenbank vorhanden :06.10.09 12:00 - 06.10.09 14:00
neuer Datensatz: 06.10.09 10:00 - 06.10.09 17:00

hier liegen 10:00 und 17 Uhr außerhalb des vorhandenen Datensatzes und der neue Datensatz würde dann geschrieben, was aber ja falsch ist.

Code:
SELECT COUNT(*)
  FROM buchung
 WHERE ('2009-10-06 10:00:00' BETWEEN von_datum AND bis_datum)
    OR ('2009-10-06 17:00:00' BETWEEN von_datum  AND bis_datum)
Ach, beim Datum/Zeit vergleichen komm ich immer ins straucheln...versuchs mal so:

Code:
SELECT COUNT(*)
  FROM buchung
 WHERE (von_datum BETWEEN '2009-10-06 10:00:00' AND '2009-10-06 17:00:00')
    OR (bis_datum BETWEEN '2009-10-06 10:00:00' AND '2009-10-06 17:00:00')
Mit Zitat antworten
  #7  
Alt 08.10.2009, 10:51:35
nummersieben nummersieben ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 53
Beiträge: 4
AW: 2 Datumsbereiche miteinander vergleichen

Danke Crisps,
deine Tipps haben mir geholfen eine Lösung für mein Problem zufinden.
Ich habe die beiden abfragen kombiniert.

Code:
SELECT COUNT(*)
  FROM buchung
 WHERE (('2009-10-06 10:00:00' BETWEEN von_datum AND bis_datum)
    OR ('2009-10-06 17:00:00' BETWEEN von_datum  AND bis_datum))
    OR
    (( von_datum  BETWEEN '2009-10-06 10:00:00' AND '2009-10-06 17:00:00')
    OR (bis_datum  BETWEEN '2009-10-06 10:00:00'  AND '2009-10-06 17:00:00'))
Mit Zitat antworten
  #8  
Alt 08.10.2009, 11:29:23
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: 2 Datumsbereiche miteinander vergleichen

Hm, reicht meine zweite Abfrage nicht aus?

Wie gesagt, bei Abfragen mit Datum und Zeit komm ich immer leicht durcheinander :D Aber ich hätte gedacht, dass die zweite eigentlich das korrekte Ergebnis abliefert.
Mit Zitat antworten
  #9  
Alt 12.10.2009, 11:33:15
nummersieben nummersieben ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 53
Beiträge: 4
AW: 2 Datumsbereiche miteinander vergleichen

Hallo,

Code:
SELECT COUNT(*)
  FROM buchung
 WHERE (von_datum BETWEEN '2009-10-06 10:00:00' AND '2009-10-06 17:00:00')
    OR (bis_datum BETWEEN '2009-10-06 10:00:00' AND '2009-10-06 17:00:00')
Folgende Werte mal als Beispiel:
von_datum='2009-10-06 09:00:00
bis_datum='2009-10-06 18:00:00

Wenn ich nur die obige Abfrage benutze, würde das Ergebnis count=1 sein was aber ja verkehrt ist. In diesem Fall würde ja der schon eingetragene Termin überschrieben.
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2 Ergebnisse miteinander vergleichen stani MySQLi/PDO/(MySQL) 16 03.01.2009 10:07:08
Zahlenbereiche vergleichen robodriver MySQLi/PDO/(MySQL) 0 15.07.2008 07:38:36
Zwei Listen miteinander Vergleichen und daraus Ergebnis beziehen gamefreaxX MySQLi/PDO/(MySQL) 3 20.04.2008 22:16:45
Datum mit anderem Datum vergleichen phpTippse PHP Grundlagen 3 29.06.2007 12:26:14
Tabellen abgleichen, vergleichen u. einträge löschen rallesalle MySQLi/PDO/(MySQL) 1 01.11.2005 12:32:07


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt