Daten formatieren

PetraSteiner

Fleissiger Benutzer
Beiträge
60
Hallo,

in einer Tabelle stehen in zwei Spalten im Format YYMMDDHHMM. Alles an einem Stück. Datentyp varchar.
Beispiel für heute 17:00 Uhr: 2001011700.

Ich sollte jetzt die Differenz zwischen den beiden Spalten berechnen (Also beide Spalten haben das gleiche Format).
Wie kann ich das mit SQL lösen?

Grüßle
Petra
 
Werbung:
Den String bekommst so in einen Timestamp:

Code:
      to_timestamp     
------------------------
 2020-01-01 17:00:00+01
(1 row)

Das auf beide Spalten angewendet kannst dann damit auch rechnen:

Code:
test=*# select to_timestamp('2001011700','YYMMDDHH24MI') - to_timestamp('2001011600','YYMMDDHH24MI');
 ?column?
----------
 01:00:00
(1 row)

Das obige mit fixen Werten dahingehend zu ändern, daß die Strings aus den zwei Spalten Deiner Tabelle kommen überlasse ich Dir zur Übung.
 
Unabhängig von der Frage: es ist eine sehr schlechte Idee Timstamp Werte in einer VARCHAR Spalte zu speichern. Man sollte immer den passenden Datentyp verwenden. Zahlen in INTEGER oder NUMERIC Spalten, Datumswerte in DATE Spalten und Zeitstempel in TIMESTAMP Spalten.
 
Werbung:
Zurück
Oben