litu16
litu16

Reputation: 183

How to convert a text variable into a timestamp in postgreSQL?

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?

Upvotes: 1

Views: 5533

Answers (1)

Eelke
Eelke

Reputation: 22023

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')

Upvotes: 1

Related Questions