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