MariaDB CURTIME() 函数的基础用法与实例

MariaDB CURTIME() 函数是一个日期和时间函数,用于返回当前时间。

发布于

MariaDB CURTIME() 函数是一个日期和时间函数,用于返回当前时间。该函数的返回值的格式为 HH:MM:SS,其中 HH 是小时,MM 是分钟,SS 是秒。

语法

MariaDB CURTIME() 函数的语法如下:

CURTIME([fsp])

该函数有一个可选的参数 fsp,用于指定返回值的小数秒部分的精度。fsp 的取值范围是 0 到 6,如果省略,则默认为 0,即不返回小数秒部分。

实例

下面是一些使用 MariaDB CURTIME() 函数的实例。

返回当前时间

在本实例中,我们使用 MariaDB CURTIME() 函数来返回当前时间,不指定 fsp 参数,即不返回小数秒部分。

SELECT CURTIME();

输出结果如下:

+-----------+
| CURTIME() |
+-----------+
| 14:22:01  |
+-----------+

从输出结果可以看出,当前时间是 14 点 22 分 01 秒。

返回当前时间,包含小数秒部分

在本实例中,我们使用 MariaDB CURTIME() 函数来返回当前时间,指定 fsp 参数为 3,即返回小数秒部分的三位。

SELECT CURTIME(3);

输出结果如下:

+--------------+
| CURTIME(3)   |
+--------------+
| 14:22:01.123 |
+--------------+

从输出结果可以看出,当前时间是 14 点 22 分 01 秒,小数秒部分是 123 毫秒。

使用 MariaDB CURTIME() 函数作为条件

在本实例中,我们使用 MariaDB CURTIME() 函数作为条件,来查询 events 表中已经开始但还没有结束的事件的信息。

SELECT * FROM events WHERE start_time <= CURTIME() AND end_time > CURTIME();

输出结果如下:

+----+----------+------------+----------+
| id | name     | start_time | end_time |
+----+----------+------------+----------+
| 2  | Meeting  | 14:00:00   | 15:00:00 |
| 4  | Webinar  | 14:15:00   | 14:45:00 |
+----+----------+------------+----------+

从输出结果可以看出,events 表中有两个事件已经开始但还没有结束,分别是会议和网络研讨会。

使用 MariaDB CURTIME() 函数作为默认值

在本实例中,我们使用 MariaDB CURTIME() 函数作为默认值,来创建一个 logs 表,该表包含了日志的编号,内容,以及记录时间的信息。

CREATE TABLE logs (
  log_id INT PRIMARY KEY,
  log_content VARCHAR(255),
  log_time TIME DEFAULT CURTIME()
);

然后,我们向 logs 表中插入一些数据,不指定 log_time 的值,让它使用默认值。

INSERT INTO logs (log_id, log_content) VALUES
(1, 'User logged in'),
(2, 'User updated profile'),
(3, 'User logged out');

最后,我们查询 logs 表中的数据,看看 log_time 的值。

SELECT * FROM logs;

输出结果如下:

+--------+----------------------+----------+
| log_id | log_content          | log_time |
+--------+----------------------+----------+
| 1      | User logged in       | 14:22:01 |
| 2      | User updated profile | 14:22:02 |
| 3      | User logged out      | 14:22:03 |
+--------+----------------------+----------+

从输出结果可以看出,log_time 的值都是当前时间,精确到秒。

使用 MariaDB CURTIME() 函数与 INTERVAL 表达式

在本实例中,我们使用 MariaDB CURTIME() 函数与 INTERVAL 表达式,来计算当前时间加上或减去一定的时间间隔后的时间。

SELECT CURTIME() AS now,
       CURTIME() + INTERVAL 1 HOUR AS one_hour_later,
       CURTIME() - INTERVAL 30 MINUTE AS half_hour_earlier;

输出结果如下:

+----------+----------------+-------------------+
| now      | one_hour_later | half_hour_earlier |
+----------+----------------+-------------------+
| 14:22:01 | 15:22:01       | 13:52:01          |
+----------+----------------+-------------------+

从输出结果可以看出,我们使用 +- 运算符,以及 INTERVAL 表达式,来指定时间间隔的单位和数量,然后与当前时间进行加法或减法运算,得到新的时间。

相关函数

除了 MariaDB CURTIME() 函数外,还有一些与之相关的函数,如下:

  • MariaDB NOW() 函数:返回当前日期和时间,格式为 YYYY-MM-DD HH:MM:SS,也可以指定 fsp 参数来返回小数秒部分。
  • MariaDB SYSDATE() 函数:与 MariaDB NOW() 函数类似,返回当前日期和时间,但是不受 SET TIMESTAMP 语句的影响,也不缓存查询的结果。
  • MariaDB CURRENT_TIMESTAMP() 函数:与 MariaDB NOW() 函数等价,返回当前日期和时间,也可以指定 fsp 参数来返回小数秒部分。

下面是一个使用这些函数的实例:

SELECT CURTIME(), NOW(), SYSDATE(), CURRENT_TIMESTAMP();

输出结果如下:

+-----------+---------------------+---------------------+---------------------+
| CURTIME() | NOW()               | SYSDATE()           | CURRENT_TIMESTAMP() |
+-----------+---------------------+---------------------+---------------------+
| 14:22:01  | 2024-02-09 14:22:01 | 2024-02-09 14:22:01 | 2024-02-09 14:22:01 |
+-----------+---------------------+---------------------+---------------------+

从输出结果可以看出,这些函数的返回值都是当前日期和时间,只是格式不同。

结论

MariaDB CURTIME() 函数是一个常用的日期和时间函数,用于返回当前时间。该函数可以指定 fsp 参数来返回小数秒部分的精度。该函数可以作为条件,默认值,或者与 INTERVAL 表达式结合,来实现不同的功能。该函数还有一些与之相关的函数,如 NOW()SYSDATE(),和 CURRENT_TIMESTAMP(),它们返回当前日期和时间,但是格式或行为有所不同,需要注意区分。