我使用concat语句选择postgresql数据库中的开始和结束时间。
代码:
SELECT
CASE
WHEN d.id = 4 THEN (SELECT CONCAT (i.start_time, i.end_time) FROM rdf_date_time i, rdf_condition_dt h WHERE ...)
ELSE ''
END as timedomain
FROM ..
JOIN ...;
start_time:0500(上午5点) end_time:1300(下午13点)
列时域看起来像:5002200
我将这种格式作为结果: [(h5){8}] = [(start_time){duration until end_time}] 我怎样才能这样转换呢?
答案 0 :(得分:1)
计算间隔你应该从另一个中提取一次,例如:
t=# select '0500'::time-'1300'::time diff;
diff
-----------
-08:00:00
(1 row)
如果列的类型为整数,则必须先进行准备,如下所示:
t=# select lpad(500::text,4,'0')::time;
lpad
----------
05:00:00
(1 row)
所以对你来说,像下面这样的人应该工作:
(lpad(i.end_time::text,4,'0')::time - lpad(i.start_time::text,4,'0')::time)