【发布时间】:2021-12-25 04:19:25
【问题描述】:
我创建了一个生成 HH:MM 时间戳并将其保存为函数的代码。但是当我尝试用SELECT random_timestamp(); 调用它时,会返回一个错误->
查询没有结果数据的目的地
CREATE OR REPLACE FUNCTION random_timestamp()
RETURNS text AS
'
BEGIN
SELECT
CASE
WHEN Length(s1.hours) = 1
AND Length(s1.minutes) = 1 THEN Concat(''0'',s1.hours, '':'',''0'', s1.minutes)
WHEN Length(s1.hours) = 1
AND Length(s1.minutes) = 2 THEN Concat(''0'',s1.hours, '':'', s1.minutes)
WHEN Length(s1.hours) = 2
AND Length(s1.minutes) = 1 THEN Concat(s1.hours, '':'', ''0'', s1.minutes)
ELSE Concat(s1.hours, '':'', s1.minutes)
END
FROM (SELECT floor(Random() * (23-0-1) + 0)::text AS hours ,
floor(random() * (59-0-1) + 0)::text AS minutes) AS s1;
RETURN(SELECT random_timestamp());
END;
'
language 'plpgsql';
【问题讨论】:
-
1) 我建议在这里进行美元报价plpgsql structure 2) 你实际上不是
RETURNing 3) 看这里Returning 43.6.1.2。返回下一个并返回查询 4) 从这里开始plpgsql 并至少通读所有部分一次。它将回答您未来的许多问题。
标签: sql postgresql function