PDA

View Full Version : SQL Timestamp oder Funktion ?



mk
08-06-07, 12:40
Hallo zusammen,

in einer Tabelle habe ich ein Timestampfeld. Jetzt soll
das Alter zur aktuellen Zeit berechnet werden.

Also z.B.
(current_timestamp - idtime)

Das Ergebnis soll so aussehen:
Feld Alter =
1 Jahr 5 Monate 3 Tage 45 Minuten 10 Sekunden

Hat jemand eine Idee wie man das lösen könnte ?
Gruss
Michael

B.Hauser
08-06-07, 12:50
Hallo,

ganz einfach:
Subtrahiere zwei Zeitmarken mit SQL.
Das Ergebnis ist ein Feld mit der Definition 20,6.
Stelle 1-4 = Differenz Jahre
Stelle 5-6 = Differenz Monate
Stelle 7-8 = Differenz Tage
Stelle 9-10 = Differenz Stunden
Stelle 11-12 = Differenz Minuten
Stelle 13-14 = Differenz Sekunden
Nachkommastellen = Differenz Mikro-Sekunden.


D DS
D DiffDate 20S 6
D DiffYears 4S 0 overlay(DiffDate)
D DiffMonths 2S 0 overlay(DiffDate: *Next)
D DiffDays 2S 0 overlay(DiffDate: *Next)
D DiffTime overlay(DiffDate: *Next)
D DiffHours 2A overlay(DiffTime)
D DiffMinute 2A overlay(DiffTime: *Next)
D DiffSecond 2A overlay(DiffTime: *Next)
D DiffMSeconds 6S 0 overlay(DiffDate: *Next)

D Timestamp1 S Z inz(Z'2004-07-01-12.00.00.000000')
D Timestamp2 S Z inz(Z'2003-07-01-08.30.45.000000')
*-------------------------------------------------------
C/EXEC SQL set :DiffDate = :Timestamp1 - :Timestamp2
c/END-EXEC

C DiffDate Dsply
C DiffTime Dsply



Birgitta

mk
08-06-07, 13:16
Hallo Birgitta,

das ist der Hit.
Und ich suche schon so lange.................................


Vielen Dank
Gruss
Michael