DATE_SUB
功能描述
Vastbase G100在MySQL兼容模式下支持使用date_sub()函数得到某日期减去指定的时间间隔后的日期。
注意事项
该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。
支持范围:
Vastbase G100 V2.2 Build 10(Patch No.5)及以后补丁版本。
Vastbase G100 V2.2 Build 11及以后版本。
语法格式
date_sub(date, INTERVAL expr type)
参数说明
date
日期信息,必须是合法的日期表达式。
expr
要减去的时间间隔。
type
时间类型/日期格式,其可选范围如下表:
参数取值 含义 MICROSECOND 毫秒 SECOND 秒 MINUTE 分 HOUR 时 DAY 天 WEEK 周 MONTH 月 QUARTER 季度 YEAR 年 SECOND_MICROSECOND 秒_毫秒 MINUTE_MICROSECOND 分_毫秒 MINUTE_SECOND 分_秒 HOUR_MICROSECOND 时_毫秒 HOUR_SECOND 时_秒 HOUR_MINUTE 时_分 DAY_MICROSECOND 天_毫秒 DAY_SECOND 天_秒 DAY_MINUTE 天_分 DAY_HOUR 天_时 YEAR_MONTH 年_月
示例
1、创建并切换至兼容模式为MySQL的数据库下。
create database test_1100752 dbcompatibility 'B';
\c test_1100752;
2、date与type的各种不同取值情况下,查询使用date_sub函数得到的结果。
date参数类型为date,type类型为WEEK。
select DATE_SUB('2022-5-31',INTERVAL 2 WEEK) result;
返回结果为:
result ------------------------ 2022-05-17 00:00:00+08 (1 row)
date参数为now(),type类型为day。
select DATE_SUB(now(),INTERVAL 123 day) result;
返回结果为:
result ------------------------------- 2022-07-17 11:46:24.714729+08 (1 row)
date参数为强转timestamp类型,type类型为day。
select DATE_SUB('2012-02-13'::timestamp,INTERVAL 123 day) result;
返回结果为:
result --------------------- 2011-10-13 00:00:00 (1 row)
date参数为timestamptz类型,type类型为YEAR_MONTH。
select DATE_SUB(timestamptz '2022-5-31',INTERVAL '5 31' YEAR_MONTH)result;
返回结果为:
result ------------------------ 2014-10-31 00:00:00+08 (1 row)
date参数为datetime字符串,type类型为SECOND。
select DATE_SUB('20121213121232',INTERVAL 123 SECOND) result;
返回结果为:
result ------------------------ 2012-12-13 12:10:29+08 (1 row)