Am Besten Erreichbarkeiten vergleichen? (von-bis)

Kalma

Erfahrenes Mitglied
Hi,

ich habe ein Formular, in dem man einen Benutzer inklusive Erreichbarkeiten prüfen kann.


Jetzt überlege ich, ob folgendes Möglich ist:

In der Datenbank stehen 2 Felder:
von, bis
beides ein Timestamp

Erreichbar zwischen:
Von: Tag | Stunden | Minuten
Bis: Tag | Stunden | Minuten


Aus beiden Daten ein Timestamp generieren, mit mktime().
Und dann vergleichen.

Ist das möglich? Oder gibt es noch eine bessere Möglichkeit?
 
Nutz den SQL Vergleichsoperator BETWEEN

SQL:
SELECT
  *
FROM
  <tablename>
WHERE
  <timedate> BETWEEN <tablename>.von AND <tablename>.bis

Da deine Problembeschreibung mangelhaft ist bin ich von folgenden Vorbedingungen ausgegangen:
  • mysql
 
Zuletzt bearbeitet:
Gut,

danke, dass wars was ich wissen wollte.

Also die Zeiten müssen jeweils als Timestamp vorliegen, richtig?


Danke für die Hilfe
 
Hi,

Du kannst Dir einen der MySQL Date and Time Types aussuchen. Das Ganze funktioniert natürlich nur, wenn in den Feldern auch jeweils tatsächlich ein Datum/Zeitstempel eingetragen wird. Wenn Du das eher in Richtung "Mo-Fr, 10-12 Uhr" haben willst, kommst Du damit natürlich nicht weiter.

LG
 
Wieso denn nicht?


Wenn ich in der Datenbank ein Attribut "von" hab und eins "bis"?
Dann geht das doch mit between oder nicht?
 
Hi,

Das Ganze funktioniert natürlich nur, wenn in den Feldern auch jeweils tatsächlich ein Datum/Zeitstempel eingetragen wird. Wenn Du das eher in Richtung "Mo-Fr, 10-12 Uhr" haben willst, kommst Du damit natürlich nicht weiter.

Wie gesagt, wenn das ein Datum + Uhrzeit ist, dann ist das kein Problem. Aber wenn es darum gehen sollte, dass die Zeiten wiederkehrend sind (montags zwischen 10 und 12 Uhr), dann hilft Dir das nicht. Wie auch.

LG
 
Hallo!

Das ist ja mal ein toller Service..... die Beratung findet rund um die Uhr statt..... selbst Nachts um 3 Uhr. ;)
(Eine Auswahl von "Montag 7 Uhr" bis "Freitag 24 Uhr 59 Minuten" ist möglich.)
Ist das bewusst so gewollt?

Ehrlichgesagt, ich würde die Minutenangeabe weglassen und den Wochentag nur einmal zur Auswahl anbieten.

BETWEEN vergleicht einen gesendeten Wert mit "von" und "bis" aus der Datenbank.
Es wird also entweder die Startzeit oder die Endzeit aus dem Formular berücksichtigt.
Sinnvoller dürfte es aber vermutlich sein beide Wert zu berücksichtigen.
Die Zeiten stehen ja als Timestamp in der Datenbank, folglich ist es auch sinnvoll die gesendeten Daten in Timestamps umzuwandeln (nennen wir sie mal $starttime und $endtime).
Dann könnte eine Abfrage ungefähr so aussehen:
PHP:
$sql = "SELECT * FROM `tabelle` WHERE `von`<='".$starttime."' AND `bis`>='".$endtime."'";
Kann sein dass ich da jetzt auch ein "Dreher" drinn habe, aber dass dürfte ja zu lösen sein. ;)

Gruss Dr Dau
 

Neue Beiträge

Zurück