VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

时间/日期函数

  • add_months(date,integer)

    返回date加上integer的值,返回值为DATE类型 。

    atlasdb=# select add_months(sysdate,4);
     add_months      
    ---------------------
    2020-07-10 02:51:07
    (1 row)
    
  • last_day(date)

    返回date所在月的最后一天。

    atlasdb=# select last_day('2011-02-11');
      last_day       
    ---------------------
    2011-02-28 00:00:00
    (1 row)
    
  • months_between(date1, date2)

    返回date1与date2之间相差的月数,当date2早于date1,返回值为负数。

    atlasdb=# select months_between(sysdate,sysdate+1);
    months_between   
    --------------------
    -0.032258064516129
    (1 row)
    
  • nanvl(n2, n1)

    当单精度或双精度浮点数n2的值为NAN,则返回n1,否则返回n2。

    atlasdb=# select oracle.nanvl(1,2)
    atlasdb-# ;
    nanvl 
    -------
     1
    (1 row)
    
  • next_day(date, char)

    返回date后的第一个自然日(包括工作日、休息日和节假日),返回值为DATE类型。

    atlasdb=# select pg_catalog.next_day('2020-03-12',1);
    next_day  
    ------------
    2020-03-15
    (1 row)
    
  • numtodsinterval(n, interval_unit)

    根据INTERVAL数据类型单元interval_unit(取值范围:'DAY'、'HOUR'、'MINUTE'、'SECOND'),将数字n转换为数据类型INTERVALDAY TO xxx。

    atlasdb=# select oracle.numtodsinterval('1','DAY');
    numtodsinterval 
    -----------------
    1 day
    (1 row)
    
  • numtoyminterval(n, interval_unit)

    根据INTERVAL数据类型单元interval_unit(取值范围:'DAY'、'HOUR'、'MINUTE'、'SECOND'),将数字n转换为数据类型INTERVALDAY TO xxx。

    atlasdb=# select oracle.numtoyminterval('1','MONTH');
    numtoyminterval 
    -----------------
    1 mon
    (1 row)
    
  • round(date, fmt)

    按照fmt指定的日期格式对date进行四舍五入处理,返回值类型为DATE。如果省略fmt,则返回最近的一天。

    atlasdb=# select pg_catalog.round('2011-02-11'::date);
        round        
    ---------------------
    2011-02-11 00:00:00
    (1 row)
    
  • to_timestamp_tz

    将char时间字符串按照fmt格式转换为timestamp WITH TIMEZONE数据类型,char支持的类型有CHAR、VARCHAR2、NCHAR、NVARCHAR2、TIMESTAMP。如果省略fmt,则char必须采用TIMESTAMP WITH TIMEZONE数据类型的默认格式。

    atlasdb=# select oracle.to_timestamp_tz('1992-04-24');
    to_timestamp_tz     
    ------------------------
    1992-04-24 00:00:00+08
    (1 row)
    
  • NEW_TIME(DATE, VARCHAR, VARCHAR)

    将日期和时间转换为另外时区。

    atlasdb=# select NEW_TIME('2005/05/29 01:45', 'AST', 'PST');
      new_time       
    ---------------------
    2005-05-28 21:45:00
    (1 row)
    
  • EXTRACT

    EXTRACT从日期时间或间隔表达式中提取并返回指定的日期时间字段的值。

    atlasdb=# SELECT EXTRACT(month FROM sysdate) from dual;
    date_part 
    -----------
         5
    (1 row)
    

TRUNC (date)

  TRUNC返回日期,其中日期的时间部分被截断为格式模型fmt指定的单位。
atlasdb=# SELECT TRUNC(TO_DATE('27-OCT-92','DD-MON-YY'), 'YEAR');
        trunc        
---------------------
 1992-01-01 00:00:00
(1 row)