在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中时间范围的判断,也可以根据需求进行适当的改动。