淘先锋技术网

首页 1 2 3 4 5 6 7

在MySQL中,我们可以使用日期和时间相关的函数,来进行时间范围的判断。

# 当前日期和时间
SELECT NOW();
# 当前日期
SELECT CURDATE();
# 当前时间
SELECT CURTIME();
# 指定日期加上时间
SELECT DATE_ADD('2022-01-01', INTERVAL '01:02:03' HOUR_SECOND);
# 时间戳转日期时间格式
SELECT FROM_UNIXTIME(1641868800);
# 日期时间格式转时间戳
SELECT UNIX_TIMESTAMP('2022-01-11 08:00:00');

使用以上函数,我们可以进行各种时间范围的判断,例如以下情况:

# 查询从2022年1月1日0点到1月10日23点之间的订单数量
SELECT COUNT(1) FROM orders WHERE created_at >= '2022-01-01 00:00:00' AND created_at<= '2022-01-10 23:59:59';
# 查询当天已经过了的订单数量
SELECT COUNT(1) FROM orders WHERE DATE_FORMAT(created_at, '%Y-%m-%d') = CURDATE();
# 查询最近7天的订单数量
SELECT COUNT(1) FROM orders WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY);
# 查询上个月的订单数量
SELECT COUNT(1) FROM orders WHERE created_at >= DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND created_at< DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00');

以上示例代码可以帮助我们更好地理解MySQL中时间范围的判断,也可以根据需求进行适当的改动。