MariaDB NOW() 函数的基础用法与实例
MariaDB NOW()
函数用来获取当前的日期和时间。
发布于
MariaDB NOW()
函数用来获取当前的日期和时间。这个函数在需要记录数据变更或者事件发生的具体时间时非常有用,常见于日志记录和时间戳功能。
语法
MariaDB NOW()
函数的语法如下:
NOW()
该函数没有参数,并且返回当前的日期和时间,格式为 ‘YYYY-MM-DD HH:MM:SS’。
实例
获取当前日期和时间
以下示例展示了如何使用 NOW()
函数来获取当前的日期和时间。
SELECT NOW();
以下是该语句的输出:
+---------------------+
| NOW() |
+---------------------+
| 2024-03-09 17:05:43 |
+---------------------+
这个输出显示了查询时的确切日期和时间。
在表中使用 NOW() 记录时间戳
首先,我们创建一个表来存储用户的登录信息,包括登录时间。
DROP TABLE IF EXISTS user_logins;
CREATE TABLE user_logins (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
login_time TIMESTAMP DEFAULT NOW()
);
然后,我们插入一条用户登录记录。
INSERT INTO user_logins (username) VALUES ('user123');
查询这个表,可以看到登录时间被自动记录。
SELECT * FROM user_logins;
以下是该语句的输出:
+----+----------+---------------------+
| id | username | login_time |
+----+----------+---------------------+
| 1 | user123 | 2024-03-09 17:05:59 |
+----+----------+---------------------+
这个输出显示了用户登录时自动插入的时间戳。
与其他日期时间函数结合使用
我们可以结合 NOW()
和其他日期时间函数来获取更具体的时间信息。例如,获取当前小时数。
SELECT EXTRACT(HOUR FROM NOW());
以下是该语句的输出:
+--------------------------+
| EXTRACT(HOUR FROM NOW()) |
+--------------------------+
| 17 |
+--------------------------+
这个输出显示了当前的小时数。
在 WHERE 子句中使用 NOW()
NOW()
函数也可以在 WHERE
子句中使用,以过滤特定时间之后的数据。假设我们有一个订单表,我们想找出今天之后创建的订单。
DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL,
order_date TIMESTAMP DEFAULT NOW()
);
INSERT INTO orders (product_name) VALUES ('Product 1'), ('Product 2'), ('Product 3');
SELECT * FROM orders WHERE order_date > NOW() - INTERVAL 1 DAY;
以下是该语句的输出:
+----------+--------------+---------------------+
| order_id | product_name | order_date |
+----------+--------------+---------------------+
| 1 | Product 1 | 2024-03-09 17:06:27 |
| 2 | Product 2 | 2024-03-09 17:06:27 |
| 3 | Product 3 | 2024-03-09 17:06:27 |
+----------+--------------+---------------------+
这个输出显示了在过去一天内创建的所有订单。
在更新语句中使用 NOW()
我们可以在更新语句中使用 NOW()
来记录数据变更的时间。例如,更新用户的最后登录时间。
UPDATE user_logins SET login_time = NOW() WHERE username = 'user123';
SELECT * FROM user_logins WHERE username = 'user123';
以下是该语句的输出:
+----+----------+---------------------+
| id | username | login_time |
+----+----------+---------------------+
| 1 | user123 | 2024-03-09 17:06:38 |
+----+----------+---------------------+
这个输出显示了用户最后登录时间的更新。
相关函数
以下是几个与 MariaDB NOW()
相关的几个函数:
- MariaDB
CURDATE()
函数用来获取当前的日期。 - MariaDB
CURTIME()
函数用来获取当前的时间。 - MariaDB
UNIX_TIMESTAMP()
函数用来获取当前的 Unix 时间戳。 - MariaDB
SYSDATE()
函数用来获取函数执行时的日期和时间,与NOW()
的区别在于SYSDATE()
不受事务的影响。
结论
MariaDB 的 NOW()
函数是一个非常实用的工具,可以帮助我们在数据库中记录和查询当前的日期和时间。通过本文的介绍和实例,您应该能够掌握如何在不同场景下使用这个函数。无论是在数据插入时自动记录时间戳,还是在查询和更新数据时作为时间条件,NOW()
函数都能提供强大的支持。