GP可以使用date_part / extract從日期時間類型中抽取部分內容。
方法一:extract
格式:extract(field from source) extract函數從日期、時間數值里抽取子域,例如年、小時等。
注意:
- source的類型type必須為:timestamp、time、interval類型的值,因此date格式必須轉換為timestamp格式
- field是一個標識符或者字符串,指定所抽取的域
select extract(century from timestamp '2018-08-01 12:12:13'); -- Result:21
select extract(day from timestamp '2018-08-01 12:15:16'); -- Result:01
方法二:date_part
格式:date_part('field', source) date_part函數是仿照在傳統的Ingres函數,等效於 SQL 標准函數extract。
注意:field必須為字符串,可取值century、day、hour、month、minute等等。
select date_part('day', timestamp '2018-08-01 12:15:16'); -- Result: 01
通過提取之后,將兩個時間值做差即可得到時間差。
select date_part('day','2015-01-15 17:05'::timestamp - '2015-01-13 15:01'::timestamp);
select ('2015-01-15 17:05'::timestamp)::date-('2015-01-13 15:01'::timestamp)::date;
END 2018-08-01 17:23:47