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(),它们返回当前日期和时间,但是格式或行为有所不同,需要注意区分。