Hallo,
ich arbeite gerade an einem Projekt: Digitaler Einkaufsführer. Hier soll auch eine Abfrage integriert werden, bei der man abfragen kann, ob das Geschäft jetzt gerade offen hat.
Bei Zahlen ist dies ja kein Problem, aber wie kann ich zum Beispiel auch ausgeben lassen, wenn ein Geschäft als Zeitangabe “nach telefonischer Vereinbarung” beinhaltet?
Ein weiteres Problem ist, dass manche Gastronomien als Endzeit: “open end” haben. Wie könnte man das Problem lösen?
Ich schreibe euch mal meine derzeitige Datenaufnahme für ein Geschäft mit “telefonischer Vereinbarung” und ein Restaurant mit “open end” dazu:
Abfrage:
with geoeffnet as (select id, current_timestamp as “Jetzt”, tag, uhrvon,
uhrbis
from oeffnungszeiten
where current_date between gueltigvon and gueltigbis
and current_time between uhrvon and uhrbis
and extract(dow from current_date) = tag)
Select k.* from kiezfuehrer_nord_geschaefte_final k, geoeffnet o
where k.id= o.id
(4, 1, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(4, 2, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(4, 3, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(4, 4, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(4, 5, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(4, 6, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(4, 0, DATE ‘01.03.2013’, date ‘31.12.2099’, time '17:00 ', time ‘open end’),
(55, 1, DATE ‘01.03.2013’, date ‘31.12.2099’, time 'nach telefonischer Vereinbarung ', time ‘nach telefonischer vereinbarung’),
(55, 2, DATE ‘01.03.2013’, date ‘31.12.2099’, time 'nach telefonischer Vereinbarung ', time ‘nach telefonischer vereinbarung’),
(55, 3, DATE ‘01.03.2013’, date ‘15.11.2099’, time '16:00 ', time ‘19:00’),
(55, 4, DATE ‘01.03.2013’, date ‘31.12.2099’, time 'nach telefonischer Vereinbarung ', time ‘nach telefonischer vereinbarung’),
(55, 5, DATE ‘01.03.2013’, date ‘31.12.2099’, time 'nach telefonischer Vereinbarung ', time ‘nach telefonischer vereinbarung’),
(55, 6, DATE ‘01.03.2013’, date ‘31.12.2099’, time 'nach telefonischer Vereinbarung ', time ‘nach telefonischer vereinbarung’),
(55, 0, DATE ‘01.03.2013’, date ‘15.11.2099’, time ’ ', time ‘’);
Für Anregungen wäre ich sehr Dankbar
Grüße,
Bernd