如何更改concat语句的格式

时间:2017-03-14 08:49:15

标签: sql postgresql concat

我使用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}] 我怎样才能这样转换呢?

1 个答案:

答案 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)