Php 比较当前日期前后的数据集

Php 比较当前日期前后的数据集,php,mysql,date,comparison,Php,Mysql,Date,Comparison,我一直在用一些非常简单的东西把头撞在桌子上 该数据库收集了来自不同门店的产品,每个产品的有效期都是标准的MySQLyyy-mm-dddates。我试图找到一种方式来显示哪些门店目前没有任何优惠,而哪些门店有。目前,我的页面看起来像: 特价店: Outlet 1 Outlet 3 Outlet 7 Outlet 2 Outlet 4 Outlet 5 无特价商品的门店: Outlet 1 Outlet 3 Outlet 7 Outlet 2 Outlet 4 Outlet 5 目前,我只是

我一直在用一些非常简单的东西把头撞在桌子上

该数据库收集了来自不同门店的产品,每个产品的有效期都是标准的MySQL
yyy-mm-dd
dates。我试图找到一种方式来显示哪些门店目前没有任何优惠,而哪些门店有。目前,我的页面看起来像:

特价店:

Outlet 1
Outlet 3
Outlet 7
Outlet 2
Outlet 4
Outlet 5
无特价商品的门店:

Outlet 1
Outlet 3
Outlet 7
Outlet 2
Outlet 4
Outlet 5
目前,我只是有一个列表

  • 当前特价,或
  • 过期特价
但我想展示一下哪些门店目前没有任何特价商品

比如:

SELECT outlet
FROM `specials`
WHERE `end_date` < '$today'
GROUP BY `outlet`
ORDER BY outlet ASC
WHERE outlet also doesn't have any specials after today's date
选择出口
来自“特价”`
其中“结束日期”<'$today'
按“出口”分组`
出口ASC订购
WHERE outlet在今天之后也没有任何特价商品

有什么想法吗?

我想你应该在
having
子句中查看最大
结束日期,而不是在
where
子句中过滤:

SELECT outlet
FROM specials
GROUP BY outlet
HAVING max(end_date) < '$today'
ORDER BY outlet ASC;
选择出口
来自特价商品
按出口分组
最大(结束日期)<'$today'
出口ASC订购;

注意:如果使用与当前日期的日期比较,请使用
now()
而不是应用程序中设置的变量。如果
$today
真的可以是任何日期,那么就使用变量传递它(尽管参数比字符串替换传递变量要好)。

效果很好!谢谢戈登,非常感谢!