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

MariaDB SYSDATE() 函数用来获取当前的日期和时间。

发布于

MariaDB SYSDATE() 函数用来获取当前的日期和时间。它常用于需要记录或使用系统当前日期时间的场景,比如记录日志、插入数据时自动填充时间戳等。

语法

MariaDB SYSDATE() 函数的语法非常简单:

SYSDATE()

该函数不需要任何参数,直接调用即可。它会返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SSYYYYMMDDHHMMSS(取决于会话的 SQL 模式)。返回值的数据类型为 DATETIME

实例

获取当前日期和时间

SELECT SYSDATE();

以下是该语句的输出:

+---------------------+
| SYSDATE()           |
+---------------------+
| 2024-03-25 10:08:49 |
+---------------------+

本示例直接调用 SYSDATE() 函数,输出服务器的当前日期和时间。每次执行都会返回新的时间。

在插入时自动填充时间戳

DROP TABLE IF EXISTS logs;
CREATE TABLE logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  message TEXT,
  created_at DATETIME DEFAULT SYSDATE()
);

INSERT INTO logs (message) VALUES ('User logged in');

SELECT * FROM logs;

以下是该语句的输出:

+----+----------------+---------------------+
| id | message        | created_at          |
+----+----------------+---------------------+
|  1 | User logged in | 2024-03-25 10:09:04 |
+----+----------------+---------------------+

本示例创建一个 logs 表,其中 created_at 字段设置为默认值 SYSDATE()。在插入新记录时,无需手动填充时间字段,它会自动使用服务器的当前时间。

将 SYSDATE() 结果存储为字符串

SET @current_time = CAST(SYSDATE() AS CHAR);

SELECT @current_time;

以下是该语句的输出:

+---------------------+
| @current_time       |
+---------------------+
| 2024-03-25 10:09:24 |
+---------------------+

本示例先将 SYSDATE() 的返回值使用 CAST 函数显式转换为字符串类型,再存储到会话变量 @current_time 中。

获取当前日期的特定部分

SELECT DATE(SYSDATE()) AS today_date,
       MONTH(SYSDATE()) AS current_month,
       YEAR(SYSDATE()) AS current_year;

以下是该语句的输出:

+------------+---------------+--------------+
| today_date | current_month | current_year |
+------------+---------------+--------------+
| 2024-03-25 |             3 |         2024 |
+------------+---------------+--------------+

本示例使用 DATE()MONTH()YEAR() 函数从 SYSDATE() 的返回值中分别提取日期、月份和年份部分。

计算系统运行时间

SET @start_time = SYSDATE();
-- 执行一些耗时操作
SELECT SLEEP(5);
SET @end_time = SYSDATE();

SELECT TIMEDIFF(@end_time, @start_time) AS duration;

以下是该语句的输出:

+----------+
| duration |
+----------+
| 00:00:05 |
+----------+

本示例首先使用 SYSDATE() 记录开始时间,然后执行某个耗时操作,最后再次调用 SYSDATE() 记录结束时间。通过 TIMEDIFF() 函数计算两个时间之差,可以得到耗时的时间间隔。

相关函数

以下是几个与 MariaDB SYSDATE() 相关的几个函数:

  • MariaDB NOW() 函数也用于获取当前日期和时间,但精度可能更高。
  • MariaDB CURDATE() 函数只返回当前日期部分。
  • MariaDB CURTIME() 函数只返回当前时间部分。
  • MariaDB UNIX_TIMESTAMP() 函数返回当前时间的 Unix 时间戳。

结论

MariaDB SYSDATE() 函数是获取数据库服务器当前日期和时间的一种简单方式。它常被用于自动填充时间戳、记录操作时间等场景。结合其他日期时间函数的使用,可以方便地对日期时间数据进行提取、转换和计算。无论是记录日志、监控系统运行状态,还是追踪数据变更历史,SYSDATE() 函数无疑都是一个非常实用的工具。熟练掌握该函数的用法,可以为开发和运维工作提供极大的便利。