Timestamp aus Datum und Zeit bilden

magpie

Benutzer
Beiträge
18
Ich habe Daten aus einer externen Quelle, die ich in eine Datenbank importieren möchte. Dabei gibt es für das Datum und die Zeit je eine separate Spalte. Um einfacher mit diesen Werten arbeiten zu können, möchte ich eine zusätzliche, generierte, Spalte erstellen, die das Datum und ie Zeit als Timestamp beinhaltet. Leider funktioniert das nicht. Ich kann die beiden Werte nicht miteinander verbinden.

Code:
CREATE TABLE events (
    log_datum date not NULL,
    log_zeit time not NULL,
    logtime timestamp GENERATED ALWAYS AS (concat(log_datum, ' ', log_zeit)) stored,
    parmeter_index int4 NULL,
    parameter_wert int4 null,
    beschreibung varchar NULL
);

gibt folgende Fehlermeldung
SQL-Fehler [42P17]: ERROR: generation expression is not immutable

Wie kann ich aus Daz^tum und Zeit einen Timestamp bilden?


Danke für eure Tipps
Martin
 
Werbung:
concat() liefert als Ergebnis ein String der implizit formatiert wurde. Wenn Du ein Timestamp haben willst, darfst Du nicht concat verwenden:

Code:
CREATE TABLE events (
    log_datum date not NULL,
    log_zeit time not NULL,
    logtime timestamp GENERATED ALWAYS AS (log_datum + log_zeit) stored,
    parmeter_index int4 NULL,
    parameter_wert int4 null,
    beschreibung varchar NULL
);
 
Werbung:
Zurück
Oben