【问题标题】:How to convert a text variable into a timestamp in postgreSQL?如何将文本变量转换为 postgreSQL 中的时间戳?
【发布时间】:2015-06-26 18:30:21
【问题描述】:

我知道如何使用 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;

但每当我在表中运行它时,它都会显示此错误消息...

似乎“to_timestamp”等待一个数字成为年份,我怎样才能让它像识别数字一样识别变量?

【问题讨论】:

    标签: postgresql function timestamp


    【解决方案1】:

    to_timestamp 的第一个参数应该是您的 var,而不是包含您的 var 名称的字符串:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 2020-01-16
      相关资源
      最近更新 更多