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)
参考
其它日期函数,请参考