查询中使用时间函数 ============================== MySQL 租户常用的时间类型有 date、timestamp、 time、datetime、year 等,更多时间类型用法,请参考《OceanBase SQL参考(MySQL模式)》。 MySQL 租户常用的取数据库时间函数是 now() ,curdate() 和 curtime() 。 * 示例:格式化时间显示 MySQL 租户调整时间类型显示的格式,可以用date_format 函数,SQL 如下: ```javascript 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如下: ```javascript 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 如下: ```javascript 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) ```