本文介绍如何使用polar_utility插件。

创建或删除插件

创建插件语法如下:

CREATE extension polar_utility;

删除插件语法如下:

DROP extension polar_utility;

准备测试数据

创建一个名为polar_test_interval_func表,并在表中插入数据。示例如下:

CREATE TABLE polar_test_interval_func(a interval);
INSERT INTO polar_test_interval_func
VALUES (interval '1.1 hour'),
       (interval '2.1 day'),
       (interval '3.1 month'),
       (interval '4.3 year'),
       (('11-AUG-20 03:16:09.089308'::timestamp - 1) - '11-AUG-20 03:16:09.089308'::timestamp),
       (('11-AUG-20 03:16:09.089308'::timestamp + 3) - '11-AUG-20 03:16:09.089308'::timestamp);

to_number(interval)

将interval类型转换为天数对应的整数。

示例如下:

SELECT to_number(a) FROM polar_test_interval_func;

返回示例如下:

        to_number
-------------------------
  0.04583333333333333333
      2.1000000000000000
     93.0000000000000000
   1551.0000000000000000
 -1.00000000000000000000
      3.0000000000000000
(6 rows)

trunc(interval)

将interval转换为天数对应的整数,并对其结果保留整数部分。

示例如下:

SELECT trunc(a) FROM polar_test_interval_func;

返回示例如下:

 trunc
-------
     0
     2
    93
  1551
    -1
     3
(6 rows)

abs(interval)

将interval转换为天数对应的整数,并对结果取绝对值。

示例如下:

SELECT abs(a) FROM polar_test_interval_func;

返回示例如下:

          abs
------------------------
 0.04583333333333333333
     2.1000000000000000
    93.0000000000000000
  1551.0000000000000000
 1.00000000000000000000
     3.0000000000000000
(6 rows)

to_char(interval)

将interval转换为天数对应的整数,并将结果转换为字符串类型。

示例如下:

SELECT to_char(a) FROM polar_test_interval_func;

返回示例如下:

         to_char
-------------------------
 0.04583333333333333333
 2.1000000000000000
 93.0000000000000000
 1551.0000000000000000
 -1.00000000000000000000
 3.0000000000000000
(6 rows)

to_date(numeric, character varying)

将numeric类型转换为指定格式的date类型。

示例如下:

SELECT to_date('20200811','yyyymmddhh24miss');

返回示例如下:

         to_date
--------------------------
 Tue Aug 11 00:00:00 2020
(1 row)

to_date(timestamp without time zone)

返回date类型。

示例如下:

SELECT to_date('11-AUG-20 03:16:09.089308'::timestamp);

返回示例如下:

             to_date
---------------------------------
 Tue Aug 11 03:16:09.089308 2020
(1 row)

mod(text, text)

支持text类型的mod操作,默认将text类型转换为numeric取模。

示例如下:

SELECT mod('10'::text, '2'::text);

返回示例如下:

 mod
-----
   0
(1 row)

convert(text, text)

将字符串转换为指定编码的字符串返回。

示例如下:

SELECT convert('RAM is the new disk.', 'utf8');

返回示例如下:

       convert
----------------------
 RAM is the new disk.
(1 row)