This is my table... <http://postgresql.nabble.com/file/n5855074/screenshot.jpg> I would like to get the time difference between 'time_type = Lap' AND 'time_type = Start' in order to fill 'time_elapse'. Im almost sure that this code works... * CREATE OR REPLACE FUNCTION timediff() RETURNS trigger AS $BODY$ DECLARE t_ix real; BEGIN IF NEW.time_type = 'Lap' THEN SELECT t.time FROM table_ebscb_spa_log04 t WHERE t.fn_name = NEW.fn_name AND t.time_type = 'Start' ORDER BY t.stmtserial DESC LIMIT 1 INTO t_ix; IF NOT FOUND THEN RAISE EXCEPTION USING MESSAGE = 'There is not any previous row...'; ELSE NEW.time_elapse := t_ix - NEW.time; END IF; END IF; return NEW; END $BODY$ LANGUAGE plpgsql VOLATILE* But I don't know how to get the time difference between the two timestamps cells in a special format: (years/months/days hours:minutes:seconds:miliseconds) like this... * 0y/0m/0d 00:00:01.001* Is this possible?? Thanks Advanced. -- View this message in context: http://postgresql.nabble.com/Get-the-difference-between-two-timestamp-cells-but-in-a-special-format-in-PostgreSQL-tp5855074.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general