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

MariaDB CURRENT_TIMESTAMP() 函数是一个日期和时间函数,它返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SS

发布于

MariaDB CURRENT_TIMESTAMP() 函数是一个日期和时间函数,它返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SS。该函数可以接受一个可选的参数,用于指定返回的时间的精度,即小数点后的位数。如果没有指定参数,或者参数为 0,则返回的时间没有小数部分。

语法

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

CURRENT_TIMESTAMP([precision])

其中,precision 是一个整数,表示返回的时间的精度,即小数点后的位数。该参数的取值范围是 0 到 6。如果省略该参数,或者指定为 0,则返回的时间没有小数部分。如果指定为其他值,则返回的时间有相应的小数部分,表示微秒。

实例

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

不带参数的 CURRENT_TIMESTAMP() 函数

在这个实例中,我们使用不带参数的 CURRENT_TIMESTAMP() 函数,返回当前的日期和时间,没有小数部分。

SELECT CURRENT_TIMESTAMP();

输出结果如下:

+---------------------+
| CURRENT_TIMESTAMP   |
+---------------------+
| 2024-02-07 20:36:32 |
+---------------------+

带参数的 CURRENT_TIMESTAMP() 函数

在这个实例中,我们使用带参数的 CURRENT_TIMESTAMP() 函数,返回当前的日期和时间,带有小数部分。我们指定参数为 4,表示返回的时间的精度为 4 位,即十万分之一秒。

SELECT CURRENT_TIMESTAMP(4);

输出结果如下:

+--------------------------+
| CURRENT_TIMESTAMP(4)     |
+--------------------------+
| 2024-02-07 20:36:32.1234 |
+--------------------------+

使用 CURRENT_TIMESTAMP() 函数作为列的默认值

在这个实例中,我们使用 CURRENT_TIMESTAMP() 函数作为一个表的列的默认值,表示该列存储的是插入数据的日期和时间。我们创建一个名为 users 的表,包含三个列:idnamecreated_at。其中,created_at 列的默认值为 CURRENT_TIMESTAMP() 函数。

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP()
);

然后,我们向该表插入两条数据,分别是 id = 1, name = 'Alice'id = 2, name = 'Bob'。注意,我们没有指定 created_at 列的值,因此,它会自动使用 CURRENT_TIMESTAMP() 函数的返回值。

INSERT INTO users (id, name) VALUES (1, 'Alice');
INSERT INTO users (id, name) VALUES (2, 'Bob');

最后,我们查询该表的所有数据,可以看到 created_at 列的值是插入数据的日期和时间。

SELECT * FROM users;

输出结果如下:

+----+-------+---------------------+
| id | name  | created_at          |
+----+-------+---------------------+
|  1 | Alice | 2024-02-07 20:36:32 |
|  2 | Bob   | 2024-02-07 20:36:33 |
+----+-------+---------------------+

使用 CURRENT_TIMESTAMP() 函数作为条件筛选数据

在这个实例中,我们使用 CURRENT_TIMESTAMP() 函数作为条件筛选数据,例如,我们可以查询在今天创建的用户。我们使用上一个实例中创建的 users 表,假设我们想要查询在 2024-02-07 创建的用户,我们可以使用如下的 SQL 语句:

SELECT * FROM users
WHERE DATE(created_at) = '2024-02-07';

输出结果如下:

+----+-------+---------------------+
| id | name  | created_at          |
+----+-------+---------------------+
|  1 | Alice | 2024-02-07 20:36:32 |
|  2 | Bob   | 2024-02-07 20:36:33 |
+----+-------+---------------------+

使用 CURRENT_TIMESTAMP() 函数与其他日期和时间函数结合

在这个实例中,我们使用 CURRENT_TIMESTAMP() 函数与其他日期和时间函数结合,例如,我们可以使用 DATE_ADD() 函数或 DATE_SUB() 函数来对 CURRENT_TIMESTAMP() 函数的返回值进行加减操作,或者使用 EXTRACT() 函数或 DATE_PART() 函数来提取 CURRENT_TIMESTAMP() 函数的返回值的某个部分。下面是一些示例:

  • 使用 DATE_ADD() 函数或 DATE_SUB() 函数来对 CURRENT_TIMESTAMP() 函数的返回值进行加减操作,例如,我们可以使用 DATE_ADD() 函数来给当前的日期和时间加上 1 天 2 小时,或者使用 DATE_SUB() 函数来给当前的日期和时间减去 3 天 4 小时。
SELECT DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL '1 DAY 2 HOUR');
SELECT DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL '3 DAY 4 HOUR');

输出结果如下:

+--------------------------------------------------------+
| DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL '1 DAY 2 HOUR') |
+--------------------------------------------------------+
| 2024-02-08 22:36:32                                    |
+--------------------------------------------------------+

+--------------------------------------------------------+
| DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL '3 DAY 4 HOUR') |
+--------------------------------------------------------+
| 2024-02-04 16:36:32                                    |
+--------------------------------------------------------+
  • 使用 EXTRACT() 函数或 DATE_PART() 函数来提取 CURRENT_TIMESTAMP() 函数的返回值的某个部分,例如,我们可以使用 EXTRACT() 函数来提取当前的日期和时间的年份,月份,或者星期,或者使用 DATE_PART() 函数来提取当前的日期和时间的小时,分钟,或者秒。
SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP());
SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP());
SELECT EXTRACT(WEEK FROM CURRENT_TIMESTAMP());
SELECT DATE_PART('hour', CURRENT_TIMESTAMP());
SELECT DATE_PART('minute', CURRENT_TIMESTAMP());
SELECT DATE_PART('second', CURRENT_TIMESTAMP());

输出结果如下:

+----------------------------------------+
| EXTRACT(YEAR FROM CURRENT_TIMESTAMP()) |
+----------------------------------------+
|                                   2024 |
+----------------------------------------+

+-----------------------------------------+
| EXTRACT(MONTH FROM CURRENT_TIMESTAMP()) |
+-----------------------------------------+
|                                       2 |
+-----------------------------------------+

+----------------------------------------+
| EXTRACT(WEEK FROM CURRENT_TIMESTAMP()) |
+----------------------------------------+
|                                      6 |
+----------------------------------------+

+----------------------------------------+
| DATE_PART('hour', CURRENT_TIMESTAMP()) |
+----------------------------------------+
|                                     20 |
+----------------------------------------+

+------------------------------------------+
| DATE_PART('minute', CURRENT_TIMESTAMP()) |
+------------------------------------------+
|                                       36 |
+------------------------------------------+

+------------------------------------------+
| DATE_PART('second', CURRENT_TIMESTAMP()) |
+------------------------------------------+
|                                       32 |
+------------------------------------------+

相关函数

除了 CURRENT_TIMESTAMP() 函数,MariaDB 还提供了一些其他的日期和时间函数,用于返回或操作当前的日期和时间,例如:

  • CURRENT_DATE() 函数:返回当前的日期,格式为 YYYY-MM-DD
  • CURRENT_TIME() 函数:返回当前的时间,格式为 HH:MM:SS。该函数可以接受一个可选的参数,用于指定返回的时间的精度,与 CURRENT_TIMESTAMP() 函数类似。
  • NOW() 函数:与 CURRENT_TIMESTAMP() 函数相同,返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SS。该函数也可以接受一个可选的参数,用于指定返回的时间的精度。
  • CURDATE() 函数:与 CURRENT_DATE() 函数相同,返回当前的日期,格式为 YYYY-MM-DD
  • CURTIME() 函数:与 CURRENT_TIME() 函数相同。

结论

MariaDB CURRENT_TIMESTAMP() 函数是一个日期和时间函数,用于返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SS。该函数可以接受一个可选的参数,用于指定返回的时间的精度,即小数点后的位数。该函数可以用于作为列的默认值,或者作为条件筛选数据,或者与其他日期和时间函数结合使用。除了 CURRENT_TIMESTAMP() 函数,MariaDB 还提供了一些其他的日期和时间函数,用于返回或操作当前的日期和时间,例如 CURRENT_DATE() 函数,CURRENT_TIME() 函数,NOW() 函数,CURDATE() 函数,CURTIME() 函数,和 SYSDATE() 函数。