南大通用GBase 8a数据库日期函数date_add,date_sub增加减少年、月、日、星期,时分秒毫秒等

GBase 8a 数据库支持对日期的调整,包括增加date_add,减少 date_sub 指定的时间。时间单位支持,年,月,日,星期,小时,分,秒,毫秒等。,当然也支持他们之间的一些组合。该函数,主要用于范围查询使用。比如 between and 或者 大于,小于某个时间段的情况。

该函数和subdate, adddate是相同的用法。

参考

查看2个时间差距的秒数,请参考

GBase 8a数据库两个时间相差的秒数

GBase 8a获得当前日期时间毫秒微秒的几个函数使用样例

GBase 8a字符串和日期函数列表索引

函数

DATE_ADD(date,INTERVAL expr type) 增加
DATE_SUB(date,INTERVAL expr type) 减少

该函数和adddate, subdate是相同的。

参数

date 是当前日期

expr 是要增加的数值,可以是常数,也可以是计算值

type 是增加的粒度,支持

typetype 类型需要的格式
毫秒MICROSECONDMICROSECONDS
SECONDSECONDS
MINUTEMINUTES
小时HOURHOURS
DAYDAYS
星期WEEKWEEKS
MONTHMONTHS
季度QUARTERQUARTERS
YEARYEARS
秒.毫秒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)

参考

其它日期函数,请参考

http://www.gbase8.cn/?tag=%e6%97%a5%e6%9c%9f