• GBase 8c V3.0.0数据类型——时间/日期函数


    l age(timestamp, timestamp)

    描述:将两个参数相减,并以年、月、日作为返回值。若相减值为负,则函数返回亦为负。两个参数类型必须相同,可以都带timezone,或都不带timezone。

    返回值类型:interval

    示例:

    gbase=# SELECT age(timestamp '2001-04-10', timestamp '1957-06-13');

               age           

    -------------------------

     43 years 9 mons 27 days

    (1 row)

    l age(timestamp)

    描述:当前时间和参数相减,入参可以带或者不带timezone。

    返回值类型:interval

    示例:

    gbase=# SELECT age(timestamp '1957-06-13');

               age

    -------------------------

     64 years 11 mons 4 days

    (1 row)

    l clock_timestamp()

    描述:实时时钟的当前时间戳。

    返回值类型:timestamp with time zone

    示例:

    gbase=# SELECT clock_timestamp();

            clock_timestamp

    -------------------------------

     2022-05-17 16:34:14.629575+08

    (1 row)

    l current_date

    描述:当前时间。

    返回值类型:date

    示例:

    gbase=# SELECT current_date;

        date

    ------------

     2022-05-17

    (1 row)

    l current_time

    描述:当前时间。

    返回值类型:time with time zone

    示例:

    gbase=# SELECT current_time;

           timetz

    --------------------

     16:35:00.099149+08

    (1 row)

    l current_timestamp

    描述:当前日期及时间。

    返回值类型:timestamp with time zone

    示例:

    gbase=# SELECT current_timestamp;

            pg_systimestamp

    -------------------------------

     2022-05-17 16:35:08.018834+08

    (1 row)

    l date_part(text, timestamp)

    描述:获取日期/时间值中子域的值,例如年或者小时的值。等效于extract(field from timestamp)。

    timestamp类型:abstime、date、interval、reltime、time with time zone、time without time zone、timestamp with time zone、timestamp without time zone。

    返回值类型:date

    示例:

    gbase=# SELECT date_part('hour', timestamp '2001-02-16 20:38:40');

     date_part

    -----------

            20

    (1 row)

    l date_part(text, interval)

    描述:获取日期/时间值中子域的值。获取月份值时,如果月份值大于12,则取与

    12的模。等效于extract(field from timestamp)。

    返回值类型:double precision

    示例:

    gbase=# SELECT date_part('month', interval '2 years 3 months'); 

    date_part

    -----------

    3

    (1 row)

    l date_trunc(text, timestamp)

    描述:截取到参数text指定的精度。

    返回值类型:interval、timestamp with time zone、timestamp without time zone

    示例:

    gbase=# SELECT date_trunc('hour', timestamp '2001-02-16 20:38:40');

     date_trunc

    ---------------------

     2001-02-16 20:00:00

    (1 row)

    l trunc(timestamp)

    描述:默认按天截取。示例:

    gbase=# SELECT trunc(timestamp '2001-02-16 20:38:40');

    trunc

    ---------------------

    2001-02-16 00:00:00

    (1 row)

    l trunc(arg1, arg2)

    描述:截取到arg2指定的精度。

    arg1类型:interval、timestamp with time zone、timestamp without time zone

    arg2类型:text

    返回值类型:interval、timestamp with time zone、timestamp without time zone

    示例:

    gbase=# SELECT trunc(timestamp '2001-02-16 20:38:40', 'hour');

    trunc

    ---------------------

     2001-02-16 20:00:00

    (1 row)

    l daterange(arg1, arg2)

    描述:获取时间边界信息。arg1和arg2的类型为date。

    返回值类型:daterange 示例:

    gbase=# select daterange('2000-05-06','2000-08-08');

     daterange

    -------------------------

    [2000-05-06,2000-08-08)

    (1 row)

    l daterange(arg1, arg2, text)

    描述:获取时间边界信息。arg1和arg2的类型为date,text类型为text。返回值类型:daterange

    示例:

    gbase=# select daterange('2000-05-06','2000-08-08','[]');

     daterange

    -------------------------

    [2000-05-06,2000-08-09)

    (1 row)

    l extract(field from timestamp)

    描述:获取小时的值。

    返回值类型:double precision

    示例:

    gbase=# SELECT extract(hour from timestamp '2001-02-16 20:38:40');

     date_part

    -----------

    20

    (1 row)

    l extract(field from interval)

    描述:获取月份的值。如果大于12,则取与12的模。返回值类型:double precision

    示例:

    gbase=# SELECT extract(month from interval '2 years 3 months');

     date_part

    -----------

    3

    (1 row)

    l isfinite(date)

    描述:测试是否为有效日期。返回值类型:Boolean

    示例:

    gbase=# SELECT isfinite(date '2001-02-16');

     isfinite

    ----------

    t

    (1 row)

    l isfinite(timestamp)

    描述:测试判断是否为有效时间。返回值类型:Boolean

    示例:

    gbase=# SELECT isfinite(timestamp '2001-02-16 21:28:30');

    isfinite

    ----------

    t

    (1 row)

    l isfinite(interval)

    描述:测试是否为有效区间。返回值类型:Boolean

    示例:

    gbase=# SELECT isfinite(interval '4 hours');

    isfinite

    ----------

    t

    (1 row)

    l justify_days(interval)

    描述:将时间间隔以月(30天为一月)为单位。返回值类型:interval

    示例:

    gbase=# SELECT justify_days(interval '35 days');

     justify_days

    --------------

    1 mon 5 days

    (1 row)

    l justify_hours(interval)

    描述:将时间间隔以天(24小时为一天)为单位。返回值类型:interval

    示例:

    gbase=# SELECT JUSTIFY_HOURS(INTERVAL '27 HOURS');

    justify_hours

    ----------------

    1 day 03:00:00

    (1 row)

    l justify_interval(interval)

    描述:结合justify_days和justify_hours,调整interval。 返回值类型:interval

    示例:

    gbase=# SELECT JUSTIFY_INTERVAL(INTERVAL '1 MON -1 HOUR');

    justify_interval

    ------------------

    29 days 23:00:00

    (1 row)

    l localtime

    描述:当前时间。

    返回值类型:time

    示例:

    gbase=# SELECT localtime AS RESULT;

         result

    -----------------

     16:39:21.245672

    (1 row)

    l localtimestamp

    描述:当前日期及时间。返回值类型:timestamp 示例:

    gbase=# SELECT localtimestamp;

             timestamp

    ----------------------------

     2022-05-17 16:39:41.292909

    (1 row)

    l now()

    描述:当前日期及时间。

    返回值类型:timestamp with time zone

    示例:

    gbase=# SELECT now();

                  now

    -------------------------------

     2022-05-17 16:47:22.123899+08

    (1 row)

    l timenow

    描述:当前日期及时间。

    返回值类型:timestamp with time zone

    示例:

    gbase=# select timenow();

            timenow

    ------------------------

     2022-05-17 16:55:05+08

    (1 row)

    l numtodsinterval(num, interval_unit)

    描述:将数字转换为interval类型。num为numeric类型数字,interval_unit为固定格式字符串('DAY' | 'HOUR' | 'MINUTE' | 'SECOND')。

    可以通过设置参数IntervalStyle为a,兼容该函数interval输出格式。 示例:

    gbase=# SELECT numtodsinterval(100, 'HOUR');

    numtodsinterval

    -----------------

    100:00:00

    (1 row)

    gbase=# SET intervalstyle = a;

    SET

    gbase=# SELECT numtodsinterval(100, 'HOUR');

    numtodsinterval

    -------------------------------

    +000000004 04:00:00.000000000

    (1 row)

    l pg_sleep(seconds)

    描述:服务器线程延迟时间,单位为秒。返回值类型:void

    示例:

    gbase=# SELECT pg_sleep(10);

    pg_sleep

    ----------

    (1 row)

    l statement_timestamp()

    描述:当前日期及时间。

    返回值类型:timestamp with time zone

    示例:

    gbase=# SELECT statement_timestamp();

         statement_timestamp

    -------------------------------

     2022-05-17 16:56:15.024107+08

    (1 row)

    l sysdate

    描述:当前日期及时间。

    返回值类型:timestamp

    示例:

    gbase=# SELECT sysdate;

           sysdate

    ---------------------

     2022-05-17 16:56:35

    (1 row)

    l timeofday()

    描述:当前日期及时间(像clock_timestamp,但是返回时为text)。返回值类型:text

    示例:

    gbase=# SELECT timeofday();

                  timeofday

    -------------------------------------

     Tue May 17 16:56:58.381310 2022 CST

    (1 row)

    l transaction_timestamp()

    描述:当前日期及时间,与current_timestamp等效。返回值类型:timestamp with time zone

    示例:

    gbase=# SELECT transaction_timestamp();

         transaction_timestamp

    -------------------------------

     2022-05-17 16:57:15.156131+08

    (1 row)

    l add_months(d,n)

    描述:用于计算时间点d再加上n个月的时间。返回值类型:timestamp

    示例:

    gbase=# SELECT add_months(to_date('2017-5-29', 'yyyy-mm-dd'), 11) FROM sys_dummy;

         add_months

    ---------------------

     2018-04-29 00:00:00

    (1 row)

    l last_day(d)

    描述:用于计算时间点d当月最后一天的时间。返回值类型:timestamp

    示例:

    gbase=# select last_day(to_date('2017-01-01', 'YYYY-MM-DD')) AS cal_result;

        cal_result

    ---------------------

    2017-01-31 00:00:00

    (1 row)

    l next_day(x,y)

    描述:用于计算时间点x开始的下一个星期几(y)的时间。返回值类型:timestamp

    示例:

    gbase=# select next_day(timestamp '2017-05-25 00:00:00','Sunday')AS cal_result;

    cal_result

    ---------------------

    2017-05-28 00:00:00

    (1 row)

    l tinterval(abstime, abstime)

    描述:用两个绝对时间创建时间间隔。返回值类型:tinterval

    示例:

    gbase=# call tinterval(abstime 'May 10, 1947 23:59:12', abstime 'Mon May 1 00:30:30 1995');

                          tinterval

    -----------------------------------------------------

     ["1947-05-10 23:59:12+09" "1995-05-01 00:30:30+08"]

    (1 row)

    l tintervalend(tinterval)

    描述:返回tinteval的结束时间。返回值类型:abstime

    示例:

    gbase=# select tintervalend('["Sep 4, 1983 23:59:12" "Oct4, 1983 23:59:12"]');

          tintervalend

    ------------------------

     1983-10-04 23:59:12+08

    (1 row)

    l tintervalrel(tinterval)

    描述:计算并返回tinterval的相对时间。返回值类型:reltime

    示例:

    gbase=# select tintervalrel('["Sep 4, 1983 23:59:12" "Oct4, 1983 23:59:12"]');

    tintervalrel

    --------------

     0-1

    (1 row)

    l smalldatetime_ge

    描述:判断是否第一个参数大于等于第二个参数。

    参数:smalldatetime, smalldatetime

    返回值类型:boolean

    l smalldatetime_cmp

    描述:对比smalldatetime是否相等。

    参数:smalldatetime,   smalldatetime

    返回值类型:integer

    l smalldatetime_eq

    描述:对比smalldatetime是否相等。

    参数:smalldatetime,   smalldatetime

    返回值类型:boolean。

    l smalldatetime_gt

    描述:判断是否第一个参数大于第二个参数。

    参数:smalldatetime, smalldatetime

    返回值类型:boolean

    l smalldatetime_hash

    描述:计算timestamp对应的哈希值。

    参数:smalldatetime

    返回值类型:integer

    l smalldatetime_in

    描述:输入timestamp。

    参数:cstring, oid, integer

    返回值类型:smalldatetime

    l smalldatetime_larger

    描述:返回较大的timestamp。

    参数:smalldatetime, smalldatetime

    返回值类型:smalldatetime

    l smalldatetime_le

    描述:判断是否第一个参数小于等于第二个参数。

    参数:smalldatetime, smalldatetime

    返回值类型:boolean

    l smalldatetime_lt

    描述:判断是否第一个参数小于第二个参数。

    参数:smalldatetime, smalldatetime

    返回值类型:boolean

    l smalldatetime_ne

    描述:比较两个timestamp是否不相等。

    参数:smalldatetime, smalldatetime

    返回值类型:boolean

    l smalldatetime_out

    描述:timestamp转换为外部形式。

    参数:smalldatetime

    返回值类型:cstring

    l smalldatetime_send

    描述:timestamp转换为二进制格式。

    参数:smalldatetime

    返回值类型:bytea

    l smalldatetime_smaller

    描述:返回较小的一个smalldatetime。

    参数:smalldatetime, smalldatetime

    返回值类型:smalldatetime

    l smalldatetime_to_abstime

    描述:smalldatetime转换为abstime。

    参数:smalldatetime

    返回值类型:abstime

    l smalldatetime_to_time

    描述:smalldatetime转换为time。

    参数:smalldatetime

    返回值类型:time without time zone

    l smalldatetime_to_timestamp

    描述:smalldatetime转换为timestamp。

    参数:smalldatetime

    返回值类型:timestamp without time zone

    l smalldatetime_to_timestamptz

    描述:smalldatetime转换为timestamptz。

    参数:smalldatetime

    返回值类型:timestamp with time zone

    l smalldatetime_to_varchar2

    描述:smalldatetime转换为varchar2。

    参数:smalldatetime

    返回值类型:character varying

  • 相关阅读:
    Unity汉化一个插件 制作插件汉化工具
    c# 正则表达式
    c++ 异常处理简单示例
    8款好用的电脑监控软件分享
    如何下载安装RabbitMQ
    php 打包下载
    Matplotlib用法使用、Matplotlib绘图作图画图
    vue el-upload 上传图片列表校验不通过后多删除了一张图片
    推荐一些常用的api接口,包括天气、物流、IP查询等
    元宇宙虚拟空间的场景构造(二)
  • 原文地址:https://blog.csdn.net/futianxia061112/article/details/125412845