php - 比较当前日期之前和之后的数据集

标签 php mysql date comparison

我一直在用很可能非常简单的东西用头撞 table 。

该数据库收集了来自不同商店的产品,每个产品都有标准的 MySQL yyyy-mm-dd 日期。我正在尝试找到一种方法来显示哪些商店当前没有任何优惠,哪些商店有优惠。目前我的页面如下所示:

折扣店:

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

有什么想法吗?

最佳答案

我认为您想查看 having 子句中的最大 end_date,而不是在 where 子句中进行过滤:

SELECT outlet
FROM specials
GROUP BY outlet
HAVING max(end_date) < '$today'
ORDER BY outlet ASC;

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

关于php - 比较当前日期之前和之后的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21935468/

相关文章:

sql - 如何获取 PostgreSQL 中两个日期之间的完整日历月份

php - 如果变量 $whereEmail 和 $whereNotEmail 为空或 null,sql 查询应选择所有行

mysql - SQL 将第二个表中的行数添加到主查询

php - 如何动态创建函数?

MySQL 返回错误值

MySQL查询选择

MySQL 获取一段时间内的每日计数

java - DateTimeFormatter 是否有类似 Joda 的 DateTimeFormatter#withOffsetParsed() 方法的东西?

php - 我如何在 php 中确定给定日期的第 n 个工作日

php - 帮助计算 mysql 结果