mysql 根据当前时间筛选某个时间范围内的数据

1.根据天数筛选

SELECT *
FROM coupons
WHERE NOW() BETWEEN start_time AND end_time;

        在这个查询中,NOW()函数返回当前的日期和时间。BETWEEN操作符用于检查NOW()返回的当前时间是否在start_timeend_time之间(包括这两个时间)。

注意:

  1. 确保你的start_timeend_time字段是DATETIMETIMESTAMP类型,以便它们可以存储日期和时间信息。
  2. 如果你的start_timeend_time字段只包含日期(没有时间)例:2024-06-25,并且你希望优惠券在整天内都有效,那么你可能需要稍微调整查询来包括当前日期的开始和结束时间

2.根据时间筛选

AND CURTIME( ) >= start_time AND CURTIME( ) <= end_time

上述start_timeend_time字段只包含时间(例:23:59:59)

注意:如果你的start_timeend_time字段是DATETIMETIMESTAMP类型,并且包含日期部分,但你只关心时间部分,你可以使用TIME()函数来提取这些字段中的时间部分进行比较:

SELECT *
FROM coupons
WHERE 
    TIME(NOW()) >= TIME(start_time) AND 
    TIME(NOW()) <= TIME(end_time);

在这个查询中,NOW()函数返回当前的日期和时间,而TIME(NOW())则只提取当前的时间部分。同样,TIME(start_time)TIME(end_time)分别提取start_timeend_time字段中的时间部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值