1

I know how to convert a text to timestamp in postgreSQL using

SELECT to_timestamp('05 Dec 2000', 'DD Mon YYYY')

but how can I convert a text variable (inside a function) to timestamp??

In my table (table_ebscb_spa_log04) "time" is a character varying column, in which I have placed a formated date time (15-11-30 11:59:59.999 PM). I have tried this function, in order to convert put the date time text into a variable (it always change) and convert it into timestamp...

CREATE OR REPLACE FUNCTION timediff()
  RETURNS trigger AS
$BODY$
DECLARE
timeascharvar character varying;
timeastistamp timestamp;

BEGIN
IF NEW.time_type = 'Lap' THEN 
  SELECT t.time FROM table_ebscb_spa_log04 t INTO timeascharvar;
  SELECT to_timestamp('timeascharvar', 'yy-mm-dd HH24:MI:SS.MS') INTO timeastistamp;
END IF;
RETURN timeastistamp;
END
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION timediff()
  OWNER TO postgres;

but whenever I run it in the table, it shows this ERROR message...

enter image description here

It seems that "to_timestamp" waits for a number to be the year, how can I get it to recognize the variable as if it were numbers?

1 Answer 1

1

The first parameter to to_timestamp should be your var not a string containing the name of your var:

to_timestamp(timeascharvar, 'yy-mm-dd HH24:MI:SS.MS')
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.