MySQL 租户常用的时间类型有 date、timestamp、 time、datetime、year 等,更多时间类型用法,请参考《OceanBase SQL参考(MySQL模式)》。
MySQL 租户常用的取数据库时间函数是 now() ,curdate() 和 curtime() 。
示例:格式化时间显示
MySQL 租户调整时间类型显示的格式,可以用date_format 函数,SQL 如下:
obclient> select now(), date_format(now(), "%Y/%m/%d %T") new_time ;
+---------------------+---------------------+
| now() | new_time |
+---------------------+---------------------+
| 2020-04-03 15:55:37 | 2020/04/03 15:55:37 |
+---------------------+---------------------+
1 row in set (0.00 sec)
示例:提取时间中的年/月/日/时/分/秒
MySQL 租户从时间中提取年/月/日/时/分/秒,可以用 extract 函数,SQL如下:
obclient> SET @dt = now();
obclient> SELECT @dt
, extract(YEAR FROM @dt) d_year
, extract(MONTH FROM @dt) d_month
, extract(week FROM @dt) d_week
, extract(DAY FROM @dt) d_day
, extract(HOUR FROM @dt) d_hour
, extract(MINUTE FROM @dt) d_min
, extract(SECOND FROM @dt) d_second
, extract(year_month FROM @dt) d_year_month
, extract(hour_minute FROM @dt) d_hour_min
\G
*************************** 1. row ***************************
@dt: 2020-03-27 18:00:52
d_year: 2020
d_month: 3
d_week: 12
d_day: 27
d_hour: 18
d_min: 0
d_second: 52
d_year_month: 202003
d_hour_min: 1800
1 row in set (0.00 sec)
示例:时间类型加减
MySQL 租户对时间进行加减,可以使用 date_add 或 date_sub 函数,SQL 如下:
obclient> SET @dt = now();
obclient> SELECT @dt
, date_add(@dt, INTERVAL 1 DAY ) t1
, date_add(@dt, INTERVAL 1 HOUR ) t2
, date_add(@dt, INTERVAL -10 MINUTE ) t3
, date_add(@dt, INTERVAL -1 MONTH ) t4
, date_sub(@dt, INTERVAL 1 YEAR ) t5
\G
*************************** 1. row ***************************
@dt: 2020-03-27 18:03:44
t1: 2020-03-28 18:03:44
t2: 2020-03-27 19:03:44
t3: 2020-03-27 17:53:44
t4: 2020-02-27 18:03:44
t5: 2019-03-27 18:03:44
1 row in set (0.01 sec)