Loops

Kampfgummibaerlie

Datenbank-Guru
Beiträge
728
Es ist mir daweil schonmal gelungen, einen select loop zu schreiben, nur habe ich das Problem, diesen auch in eine Tabelle einzufügen.

Warum ich es hier wiederum in einer eigenen Tabelle möchte, wo ein jeder Timestamp in 5 Minuten Schritten ausgelistet ist? Weil ich denke, dass das die schnellste Lösung ist, und mir das Ganze mit noch einer Sprache lernen nicht antun möchte.

Was ich eigentlich will:
1.: Eine Tabelle mit allen möglichen Timestamps haben (eben im 5 Minuten Schritt)
2.: Eine stored query (ich arbeite schon am GUI-Dings), welche in der Lage ist, die Timestamp zu wählen, die aussieht, wie die, die ich als gefragten Wert eingebe.

Habe hierzu einen alten Thread im Forum gefunden, welcher mich eben auch einen Schritt gehen lässt:
Code:
select '2017-03-28 18:00:))'::timestamp + s * '5minutes'::interval as time from generate_series(1, 40) s(s);

Ich möchte diese gewählten Werte jedoch in eine Tabelle inserten, und weiß leider nicht wirklich, wie xD

Beispiel der Anwendung:
1.: Ich habe eine Funktion z_mietbeginn(integer, timestamp)

Jetzt möchte ich einen query schreiben, welcher den integer aus maschinen zieht, und die timestamp aus eben der gewollten Tabelle, in die ich irgendwie nicht inserten kann.
 
Werbung:
*seufz*

Code:
test=# select '2017-03-28 18:00:))'::timestamp + s * '5minutes'::interval as time from generate_series(1, 40) s(s);
  time   
---------------------
 2017-03-28 18:05:00
 2017-03-28 18:10:00
 2017-03-28 18:15:00
 2017-03-28 18:20:00
 2017-03-28 18:25:00
 2017-03-28 18:30:00
 2017-03-28 18:35:00
 2017-03-28 18:40:00
 2017-03-28 18:45:00
 2017-03-28 18:50:00
 2017-03-28 18:55:00
 2017-03-28 19:00:00
 2017-03-28 19:05:00
 2017-03-28 19:10:00
 2017-03-28 19:15:00
 2017-03-28 19:20:00
 2017-03-28 19:25:00
 2017-03-28 19:30:00
 2017-03-28 19:35:00
 2017-03-28 19:40:00
 2017-03-28 19:45:00
 2017-03-28 19:50:00
 2017-03-28 19:55:00
 2017-03-28 20:00:00
 2017-03-28 20:05:00
 2017-03-28 20:10:00
 2017-03-28 20:15:00
 2017-03-28 20:20:00
 2017-03-28 20:25:00
 2017-03-28 20:30:00
 2017-03-28 20:35:00
 2017-03-28 20:40:00
 2017-03-28 20:45:00
 2017-03-28 20:50:00
 2017-03-28 20:55:00
 2017-03-28 21:00:00
 2017-03-28 21:05:00
 2017-03-28 21:10:00
 2017-03-28 21:15:00
 2017-03-28 21:20:00
(40 Zeilen)

test=*# create table blubber (ts timestamp);
CREATE TABLE
test=*# insert into blubber select '2017-03-28 18:00:))'::timestamp + s * '5minutes'::interval as time from generate_series(1, 40) s(s);
INSERT 0 40
test=*# select * from blubber ;
  ts   
---------------------
 2017-03-28 18:05:00
 2017-03-28 18:10:00
 2017-03-28 18:15:00
 2017-03-28 18:20:00
 2017-03-28 18:25:00
 2017-03-28 18:30:00
 2017-03-28 18:35:00
 2017-03-28 18:40:00
 2017-03-28 18:45:00
 2017-03-28 18:50:00
 2017-03-28 18:55:00
 2017-03-28 19:00:00
 2017-03-28 19:05:00
 2017-03-28 19:10:00
 2017-03-28 19:15:00
 2017-03-28 19:20:00
 2017-03-28 19:25:00
 2017-03-28 19:30:00
 2017-03-28 19:35:00
 2017-03-28 19:40:00
 2017-03-28 19:45:00
 2017-03-28 19:50:00
 2017-03-28 19:55:00
 2017-03-28 20:00:00
 2017-03-28 20:05:00
 2017-03-28 20:10:00
 2017-03-28 20:15:00
 2017-03-28 20:20:00
 2017-03-28 20:25:00
 2017-03-28 20:30:00
 2017-03-28 20:35:00
 2017-03-28 20:40:00
 2017-03-28 20:45:00
 2017-03-28 20:50:00
 2017-03-28 20:55:00
 2017-03-28 21:00:00
 2017-03-28 21:05:00
 2017-03-28 21:10:00
 2017-03-28 21:15:00
 2017-03-28 21:20:00
(40 Zeilen)

test=*#
 
Der junge Mann sei geehrt *lorbeerblätterkrone aufsetz*

Ich habe das Insert immer anders herum versucht .... :/ *SQL-Basis lernen muss xD*

Habe es immer irgendwie versucht mittels:
Code:
select ....... into ............;
 
Werbung:
Zurück
Oben