我具有以下表格结构
id date time discount
------------------------------------------------------
1 2015-08-10 09:30:00 50%
2 2016-04-15 14:00:00 30%
3 2018-01-25 18:15:00 75%
4 2018-11-19 11:45:00 45%
我想查询该表以查找特定日期的折扣金额;
预期结果;
如果我查询的日期在2015-08-10 09:30:00
-2016-04-15 13:59:59
之间,则结果应为50%
对于2016-04-15 14:00:00
-2018-01-25 18:14:59
之间的日期,应产生30%
示例:
查询该表的日期
2016-01-10 08:00:00
应该 结果50%
我已经搜索了SO和Google,但找不到适合我的案例的解决方案;
尝试对我的示例进行查询
SELECT * FROM discounts WHERE date<='2016-01-10' AND time<='08:00:00'
ORDER BY date DESC LIMIT 1
但没有运气!
我们非常感谢您的帮助。
答案 0 :(得分:1)
您可以在表结构中使用类似的内容-
从“ 2015-08-10 09:30:00”和“ 2016-04-15 13:59:59”之间的CAST(CONCAT(日期,“”,时间)作为DATETIME)之间的折扣中选择折扣>
您也许可以在不强制转换值的情况下走开,但这将确保日期和时间值的格式正确。
但是我建议将日期和时间值存储为单个标准datetime值。有理由将它分为两个单独的列吗?