mysql - MySQL,如何根据特定日期选择行?
问题描述
我有以下问题。有四列 Product_ID、Product_price、Start_date 和 End_date 我需要选择给定日期(1997/12/14)价格最高的产品。关键是产品ID可以在几行中保持不变,但产品在不同时间段的价格不同。我试图做这样的事情,但我得到一个空的结果:
SELECT
Product_ID, Product_price
FROM Products
WHERE
Start_date >= STR_TO_DATE('1997/12/14', '%y/%m/%d')
AND
End_date =< STR_TO_DATE('1997/12/14', '%y/%m/%d')
解决方案
我认为你想要的逻辑更像是这样的:
SELECT p.Product_ID, p.Product_price
FROM Products p
WHERE p.Start_date <= '1997-12-14' AND
p.End_date >= '1997-12-14'
ORDER BY p.Product_price DESC
LIMIT 1;
换句话说,您的日期比较是倒退的。一个时间段包含一个特定的日期,如果它在该日期或之前开始并在该日期或之后结束。
推荐阅读
- video - 无法从头开始播放视频
- google-cloud-platform - 传入空值时未删除 Terraform 资源属性
- java - 有没有办法使用 Comparator 比较 Class 对象的值?
- sql - 连接需要的 sql 脚本帮助
- python - 如何解决“未解析的类属性引用”
- python - 打开 Whatsapp Web 并配置 Options() 时出错
- python - Apple JS 登录:从代码和 id_token 中获取用户 ID?
- c# - 动态对象变量的 C# 索引在方法中有效,但在返回时无效,错误 C50021
- javascript - 如何在功能组件中将默认道具作为函数传递
- r - 如何将二次回归方程添加到多面 gpplot?