查询中使用时间函数 
==============================



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)
```



