暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase Cloud快速入门第51期:如何在查询中使用时间函数?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/



本文通过具体示例介绍如何在查询中使用时间函数。

时间函数

MySQL 租户常用的时间类型有 DATE、TIMESTAMP、 TIME、DATETIME、YEAR 等,在 OceanBase 数据库 MySQL 模式下,常用的时间函数包括 NOW()、CURDATE() 和 CURTIME() 等。

示例

调整时间类型显示的格式

在 OceanBase 数据库 MySQL 模式下,可以用通过 NOW() 输出当前时间,使用 DATE_FORMAT 函数可以调整时间类型显示的格式。

obclient> SELECT NOW(),DATE_FORMAT(NOW(),"%Y/%M/%D %T") new_time;
+---------------------+-------------------------+
| NOW()               | new_time                |
+---------------------+-------------------------+
| 2022-03-08 18:26:31 | 2022/March/8th 18:26:31 |
+---------------------+-------------------------+
1 row in set

提取时间中的年、月、日、时、分、秒

在 OceanBase 数据库 MySQL 模式下,可以使用 EXTRACT() 函数从时间中提取年、月、日、时、分、秒信息。

obclient> SET @dt = NOW();
Query OK, 0 rows affected

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: 2022-03-08 18:28:53
      d_year: 2022
     d_month: 3
      d_week: 10
       d_day: 8
      d_hour: 18
       d_min: 28
    d_second: 53
d_year_month: 202203
  d_hour_min: 1828
1 row in set

时间类型的加减运算

在 OceanBase 数据库 MySQL 模式下,可以使用 DATE_ADD() 或 DATE_SUB() 函数对时间进行加减,SQL 语句示例如下:

obclient> SET @dt = NOW();
Query OK, 0 rows affected

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_ADD(@dt, INTERVAL 1 YEAR )       t5
\G

*************************** 1. row ***************************
@dt: 2022-03-08 18:28:53
 t1: 2022-03-09 18:28:53
 t2: 2022-03-08 19:28:53
 t3: 2022-03-08 18:18:53
 t4: 2022-02-08 18:28:53
 t5: 2023-03-08 18:28:53
1 row in set

有关更多时间类型用法,请参考 《SQL 语法(MySQL模式)》 章节。

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

最后修改时间:2023-04-20 15:28:47
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论