MySQL 比对当前日期

在数据库应用中,经常需要比对当前日期与数据库中的日期进行查询或操作。MySQL提供了一些函数来处理日期和时间数据,使得比对当前日期变得非常简单。

1. CURDATE() 函数

CURDATE() 函数返回当前日期。它不需要任何参数。下面是一个使用 CURDATE() 函数比对当前日期的例子:

SELECT * FROM orders WHERE order_date = CURDATE();

上面的代码将返回今天的订单。该代码将查询 orders 表中 order_date 列等于当前日期的所有行。

2. NOW() 函数

NOW() 函数返回当前日期和时间。它也不需要任何参数。下面是一个使用 NOW() 函数比对当前日期和时间的例子:

SELECT * FROM log WHERE log_date >= NOW() - INTERVAL 1 DAY;

上面的代码将返回在过去24小时内发生的日志记录。该代码将查询 log 表中 log_date 列大于等于当前日期减去一天的所有行。

3. DATE_FORMAT() 函数

DATE_FORMAT() 函数可以将日期和时间格式化为指定的字符串形式。它接受两个参数:日期/时间值和格式字符串。下面是一个使用 DATE_FORMAT() 函数格式化日期的例子:

SELECT order_id, DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date FROM orders;

上面的代码将返回订单ID和格式化后的订单日期。该代码将查询 orders 表,并使用 DATE_FORMAT() 函数将 order_date 列格式化为 "年-月-日" 的形式。

4. 比对日期范围

除了比对当前日期,我们还经常需要比对一个日期范围。MySQL 提供了一些函数来处理日期范围的查询。

4.1 BETWEEN ... AND ...

BETWEEN ... AND ... 是一个用于比对范围的运算符。它可以用于比对日期范围。下面是一个使用 BETWEEN ... AND ... 运算符比对日期范围的例子:

SELECT * FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-01-31';

上面的代码将返回在2022年1月1日至2022年1月31日期间的订单。该代码将查询 orders 表中 order_date 列在指定范围内的所有行。

4.2 >, <, >=, <= 运算符

除了使用 BETWEEN ... AND ... 运算符,我们还可以使用 >, <, >=, <= 运算符来比对日期范围。下面是一个使用 < 运算符比对日期范围的例子:

SELECT * FROM orders WHERE order_date < '2022-02-01';

上面的代码将返回在2022年1月31日之前的订单。该代码将查询 orders 表中 order_date 列小于指定日期的所有行。

总结

在MySQL中比对当前日期是非常常见的需求,我们可以使用 CURDATE() 函数获取当前日期,使用 NOW() 函数获取当前日期和时间。此外,我们还可以使用 DATE_FORMAT() 函数将日期和时间格式化为指定的字符串形式。如果需要比对日期范围,我们可以使用 BETWEEN ... AND ... 运算符或 >, <, >=, <= 运算符。

希望本文对你学习和使用MySQL比对当前日期有所帮助!

参考链接

  • [MySQL Date and Time Functions](