GBase 8a 数据库支持对日期的调整,包括增加date_add,减少 date_sub 指定的时间。时间单位支持,年,月,日,星期,小时,分,秒,毫秒等。,当然也支持他们之间的一些组合。该函数,主要用于范围查询使用。比如 between and 或者 大于,小于某个时间段的情况。
该函数和subdate, adddate是相同的用法。
目录导航
参考
查看2个时间差距的秒数,请参考
函数
DATE_ADD(date,INTERVAL expr type) 增加
DATE_SUB(date,INTERVAL expr type) 减少
该函数和adddate, subdate是相同的。
参数
date 是当前日期
expr 是要增加的数值,可以是常数,也可以是计算值
type 是增加的粒度,支持
| type | type 类型 | 需要的格式 | 
|---|---|---|
| 毫秒 | MICROSECOND | MICROSECONDS | 
| 秒 | SECOND | SECONDS | 
| 分 | MINUTE | MINUTES | 
| 小时 | HOUR | HOURS | 
| 天 | DAY | DAYS | 
| 星期 | WEEK | WEEKS | 
| 月 | MONTH | MONTHS | 
| 季度 | QUARTER | QUARTERS | 
| 年 | YEAR | YEARS | 
| 秒.毫秒 | SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' | 
| 分:秒.毫秒 | MINUTE_MICROSECOND | 'MINUTES:SECONDS.MICROSECONDS' | 
| 分:秒 | MINUTE_SECOND | 'MINUTES:SECONDS' | 
| 时分秒.毫秒 | HOUR_MICROSECOND | 'HOURS:MINUTES:SECONDS.MICROSECONDS' | 
| 时分秒 | HOUR_SECOND | 'HOURS:MINUTES:SECONDS' | 
| 时分 | HOUR_MINUTE | 'HOURS:MINUTES' | 
| 天时分秒毫秒 | DAY_MICROSECOND | 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' | 
| 天时分秒 | DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' | 
| 天时分 | DAY_MINUTE | 'DAYS HOURS:MINUTES' | 
| 天时 | DAY_HOUR | 'DAYS HOURS' | 
| 年月 | YEAR_MONTH | 'YEARS-MONTHS' | 
样例
gbase> select now(),date_add(now(),interval 1 month),date_add(now(),interval 1 week);
+---------------------+----------------------------------+---------------------------------+
| now()               | date_add(now(),interval 1 month) | date_add(now(),interval 1 week) |
+---------------------+----------------------------------+---------------------------------+
| 2020-09-03 10:27:23 | 2020-10-03 10:27:23              | 2020-09-10 10:27:23             |
+---------------------+----------------------------------+---------------------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select now(),date_sub(now(),interval 1 month),date_sub(now(),interval 1 week);
+---------------------+----------------------------------+---------------------------------+
| now()               | date_sub(now(),interval 1 month) | date_sub(now(),interval 1 week) |
+---------------------+----------------------------------+---------------------------------+
| 2020-09-03 11:57:08 | 2020-08-03 11:57:08              | 2020-08-27 11:57:08             |
+---------------------+----------------------------------+---------------------------------+
1 row in set (Elapsed: 00:00:00.00)
采用 adddate,subdate
gbase> select now(),adddate(now(),interval 1 month),adddate(now(),interval 1 week);
+---------------------+---------------------------------+--------------------------------+
| now()               | adddate(now(),interval 1 month) | adddate(now(),interval 1 week) |
+---------------------+---------------------------------+--------------------------------+
| 2020-09-03 11:55:36 | 2020-10-03 11:55:36             | 2020-09-10 11:55:36            |
+---------------------+---------------------------------+--------------------------------+
1 row in set (Elapsed: 00:00:00.00)
gbase> select now(),subdate(now(),interval 1 month),subdate(now(),interval 1 week);
+---------------------+---------------------------------+--------------------------------+
| now()               | subdate(now(),interval 1 month) | subdate(now(),interval 1 week) |
+---------------------+---------------------------------+--------------------------------+
| 2020-09-03 11:56:55 | 2020-08-03 11:56:55             | 2020-08-27 11:56:55            |
+---------------------+---------------------------------+--------------------------------+
1 row in set (Elapsed: 00:00:00.00)
参考
其它日期函数,请参考