Per Generate Series die nächsten 31 offenen Tage anzeigen

Kampfgummibaerlie

Datenbank-Guru
Beiträge
734
Ich würde gerne, auf meiner Homepage:

1.: Das Datum und die Uhrzeit jeweils einzeln eingeben (denke ich, geht mit irgendeiner to_timestamp funktion)
2.: Das Datum auf die nächsten 31 Tage ohne Feier und Sonntagen anzeigen (falls ein Sonn- oder Feier-Tag dazwischen ist, darf das ganze auch weniger sein)

Punkt ist:
Ich würde auf der entsprechenden Homepage (ja, bin wieder voll hinter Mimoso, und habe einen Pakt mit meiner Mutter abgeschlossen, dass ich ihr ein wenig aushelfe)

Und würde das gerne eben so lösen.

Beispiel:
(Mietungsformular):
Maschinentyp wählen aus Dropdownlist
Datum wählen aus Dropdownlist
Uhrzeit wählen aus Dropdownlist
Beantragungsbutton

Ich würde das Ganze gerne auch noch so regeln, denke ich ist aber Homepageintern irgendwie lösbar, dass entsprechend nur die Uhrzeiten wählbar sind (im 15 Minuten Schritt), wo das Cafe auch offen hat.

Aber ja, würde mich freuen, wenn man mir sagen könnte, wie das mit generate_series bei fortlaufenden Daten funktioniert.
Des weiteren glaube ich, kann ich mir das Ganze dann auch adaptieren auf das Wählen der Uhrzeiten ;)

Optimalfall wäre, dass man sich entweder, je nachdem was man zuerst wählt, Uhrzeit 17:00, sich dann die verfügbaren Daten ändern, auf nur die Tage, wo auch um 17:00 offen wäre (Montag, Mittwoch, Freitag), und im anderen Fall, falls zB ein Dienstag gewählt wird, im Dropdownmenü wählbar sind werte von 08:00 bis 14:00 (ja, in 15 Minuten Schritten).

Beiwort: Wie ich das Homepageintern lösen könnte, weiß ich bereits, glaube ich, nur glaube ich, muss ich mich langsam auch mit weiteren PG-SQL internen Funktionen beschäftigen ^^

Beifrage: Herr Elefant, bitte einen entsprechenden Link zu allen verfügbaren PG-Internen Funktionen, die verfügbar sind, falls leicht zu finden xD
 
Werbung:
Selbst aus dem MS-SQL-Forum richtig adaptiert von einem Post dort von unserem Mr. Elephant ;)

Lösung:
Code:
select * from generate_series(current_date, current_date+'31day'::interval, '1 day'::interval);

Optimalere Lösung:
Code:
select to_char(generate_series::date, 'DD.MM.YYYY') from generate_series(current_date, current_date+'31day'::interval, '1 day'::interval);

Sodala, ein order by eingebaut (obwohls eigentlich nicht nötig ist) *Eine Pusteblume verlange*:
Code:
select to_char(generate_series::date, 'DD.MM.YYYY') from generate_series(current_date, current_date+'31day'::interval, '1 day'::interval) order by generate_series
 
Zurück
Oben