PDA

View Full Version : SQL Time update



sven70
17-06-21, 14:20
Hallo zusammen,
ich möchte in ein Datumsfeld und einem Zeitfeld die aktuellen Werte übernehmen.

Bei dem Datumsfeld geht es:

update lib.table
set dat =
(YEAR(CURRENT DATE)*10000 + MONTH(CURRENT DATE)*100 + DAY(CURRENT DATE) ),

Aber bei dem Zeitfeld bekomme ich es nicht hin. Current time geht nicht.
Da moniert es das es mit dem Feld nicht passt.

Das Feld ist numerisch mit 6 0 definert.

Wie muss ich die Time Werte umwandeln damit ich das in das Feld reinbekomme.

prsbrc
17-06-21, 14:33
Hallo.
Versuch mal DECIMAL(CURRENT_TIME, 6)

Zusatz:
Falls dein Datum auch ein numerisches Feld ist (was ich annehme) dann kannst du das DECIMAL auch auf das CURRENT_DATE fahren -> DECIMAL(CURRENT_DATE, 8) und musst es nicht mit dem Query-Trick umsetzen :-)

xenofob
17-06-21, 14:37
Hallo,
ich würde das etwas sauberer und flexibler Aufziehen.

varchar_format(current timestamp, 'YYYYMMDD') -> Datum
varchar_format(current timestamp, 'HH24MISS') -> Uhrzeit

du musst dann noch casten auf numerisch
Gibt auch eine super doku dazu: https://www.ibm.com/docs/en/ias?topic=functions-varchar-format

Fuerchau
17-06-21, 14:44
Da finde ich die Decimal-Variante einfacher, da ist der CAST schon dabei.

sven70
18-06-21, 05:25
Hallo,
die Decimal-Variante hat funktioniert. Danke.