2015-06-26 2 views
0

Я знаю, как преобразовать текст в TIMESTAMP в PostGreSQL с помощьюКак преобразовать текстовую переменную в метку времени в postgreSQL?

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

, но как я могу преобразовать текстовую переменную (внутри функции) для временной метки ??

В моей таблице (table_ebscb_spa_log04) «время» - это символ, различающийся столбцом, в котором я разместил форматированное время даты (15-11-30 11: 59: 59.999 PM). Я попробовал эту функцию, чтобы преобразовать поместить текст временной даты в переменный (она всегда изменить) и преобразовать его в метку времени ...

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; 

, но всякий раз, когда я запускаю его в таблице, показывает, это сообщение ERROR ...

enter image description here

Похоже, что «to_timestamp» ждет номер, который будет год, как я могу заставить его признать переменную, как если бы это были числа?

ответ

0

Первый параметр to_timestamp должен быть ваш вар не строка, содержащая имя вашего вар:

to_timestamp(timeascharvar, 'yy-mm-dd HH24:MI:SS.MS') 
+0

лол, спасибо .................. , – litu16

Смежные вопросы