我有2个值:x_data和y_data。 这些值是图形的X和Y。
x_data当前是一个纪元值乘以1000,我的函数应该能够将其除以1000并转换为时间戳以插入相应的表中。
这是我到目前为止所看到的,显然不起作用:
BEGIN
UPDATE test set x_data=ceil(in_x_data/1000)::abstime::timestamp, y_data=in_y_data WHERE x_data=ceil(in_x_data/1000)::abstime::timestamp;
IF FOUND THEN
RETURN;
END IF;
BEGIN
INSERT INTO test ( x_data, y_data ) VALUES ( ceil(in_x_data/1000)::abstime::timestamp, in_y_data );
END;
RETURN;
END;
ERROR: ERROR: cannot cast type double precision to abstime
我尝试ceil(in_x_data::NUMERIC/1000)::abstime::timestamp
但cannot cast type numeric to abstime
这就是我调用该函数的方式:
SELECT test(1538949600000,123);
表测试为:
CREATE TABLE public.test
(
x_data timestamp without time zone NOT NULL,
y_data numeric,
PRIMARY KEY (x_data)
)
有人可以告诉我怎么了吗?