openGauss SQL参考—函数和操作符:时间和日期处理函数和操作符(3)

  • numtodsinterval(num, interval_unit)

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

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

    示例:

    openGauss=# SELECT numtodsinterval(100, 'HOUR');
     numtodsinterval 
    -----------------
     100:00:00
    (1 row)
    
    openGauss=# SET intervalstyle = a;
    SET
    openGauss=# SELECT numtodsinterval(100, 'HOUR');
            numtodsinterval
    -------------------------------
     +000000004 04:00:00.000000000
    (1 row)
    
  • pg_sleep(seconds)

    描述:服务器线程延迟时间,单位为秒。

    返回值类型:void

    示例:

    openGauss=# SELECT pg_sleep(10);
     pg_sleep 
    ----------
    
    (1 row)
    
  • statement_timestamp()

    描述:当前日期及时间。

    返回值类型:timestamp with time zone

    示例:

    openGauss=# SELECT statement_timestamp();
          statement_timestamp      
    -------------------------------
     2017-09-01 17:04:39.119267+08
    (1 row)
    
  • sysdate

    描述:当前日期及时间。

    返回值类型:timestamp

    示例:

    openGauss=# SELECT sysdate;
           sysdate       
    ---------------------
     2017-09-01 17:04:49
    (1 row)
    
  • timeofday()

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

    返回值类型:text

    示例:

    openGauss=# SELECT timeofday();
                  timeofday              
    -------------------------------------
     Fri Sep 01 17:05:01.167506 2017 CST
    (1 row)
    
  • transaction_timestamp()

    描述:当前日期及时间,与current_timestamp等效。

    返回值类型:timestamp with time zone

    示例:

    openGauss=# SELECT transaction_timestamp();
         transaction_timestamp     
    -------------------------------
     2017-09-01 17:05:13.534454+08
    (1 row)
    
  • add_months(d,n)

    描述:用于计算时间点d再加上n个月的时间。

    d:timestamp类型的值,以及可以隐式转换为timestamp类型的值。

    n:INTEGER类型的值,以及可以隐式转换为INTEGER类型的值。

    返回值类型:timestamp

    示例:

    openGauss=# 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)
    
  • last_day(d)

    描述:用于计算时间点d当月最后一天的时间。

    返回值类型:timestamp

    示例:

    openGauss=# select last_day(to_date('2017-01-01', 'YYYY-MM-DD')) AS cal_result;
         cal_result      
    ---------------------
     2017-01-31 00:00:00
    (1 row)
    
  • next_day(x,y)

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

    返回值类型:timestamp

    示例:

    openGauss=# select next_day(timestamp '2017-05-25 00:00:00','Sunday')AS cal_result;
         cal_result      
    ---------------------
     2017-05-28 00:00:00
    (1 row)
    
  • tinterval(abstime, abstime )

    描述:用两个绝对时间创建时间间隔。

    返回值类型:tinterval

    示例:

    openGauss=# 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)
posted @ 2024-07-30 10:44  openGauss-bot  阅读(94)  评论(0)    收藏  举报