NOW() oder CurrentTimeStamp oder...

Hallo miteinander,

ich habe eine Prozedur, in der ich zu Beginn und am Ende das aktuelle Datum + aktuelle Zeit ausgebe.
Egal wie lange mein Prozedur braucht, die Ausgabe bringt mir am Ende den gleichen Zeitstempel wie am Anfang.
Ich habe es mit Current_Timestamp, NOW(), LocalTimestamp probiert, keine Änderung.
Hier mal die Ausgabe für eine Proc, die 35 Sekunden dauert

NOTICE: START - 2007-10-17 17:20:48.094+02
NOTICE: Ermittle …
NOTICE: Lösche …
NOTICE: Zeit: 2007-10-17 17:20:48.094
NOTICE: Zeit: 2007-10-17 17:20:48.094
NOTICE: DAUER: 00:00:00
NOTICE: Lösche ::…
NOTICE: Fülle …
NOTICE: Fülle …
NOTICE: Zeit: 2007-10-17 17:20:48.094
NOTICE: ENDE - 2007-10-17 17:20:48.094+02

START und ENDE-Ausgabe sind von der Zeit her identisch, kann aber nicht sein, da wie bereits erwähnt, die Proc ca. 36 Sek. dauert.

Habt ihr eine Idee, woran das liegt?
Vielen Dank für eure Hilfe und Grüße Petra

Ja. now() und Konsorten geben die Startzeit der aktuellen TX. Innerhalb einer TX ist timeofday() Dein Freund. Steht auch so in der Doku. Irgendwo…

Andreas

Hallo Andres,
immer diese Transaktionen.
Ich dachte ich hätte TimeOfDay getestet ? muss ich nochmal ran.

Igittt … das bringt ja das Datum in Textformat. :slight_smile:

Vielen Dank und Grüße PEtra

Ja. Besser, man hat, als man hätte. Spätestens, als ich mir mal durch ein unbedarftes DELETE mit vergessenem WHER ins Knie ballerte und froh über ein Backup war weiß ich das durchaus zu schätzen.

Andreas, seit dem ein “\set AUTOCOMMIT off” in der ~/.psqlrc habend.

Hallo Andreas,

vielen Dank für Deine schnelle Antworten.

das mit dem AutoCommit werde ich übernehmen :smiley:
Grüße Petra