【发布时间】:2016-05-02 18:31:20
【问题描述】:
我有一个 Orders 表,其中包含有关租车日期范围和租车价格的信息。
价格由:
SELECT ROUND((points * (SELECT DATEDIFF('$dateTo', '$dateFrom'))) * 0.95) AS price
$dateTo 和 $dateFrom 是 PHP 变量,用于保存用户给定日期范围的值。换句话说:
$dateTo = $_POST['date-to'];
$dateFrom = $_POST['date-from'];
因此,您每天可以从租金中获得 5% 的折扣,但我还想检查日期范围是否跨越周六或周日。如果租金是从星期五到星期一,我想在总价上加 10 分,因为日期范围包括星期六。
这可能吗?
【问题讨论】:
-
我有点搞不懂你说的“如果租金是从周五到周一,我想在总价上加10分,因为日期范围包括一个星期六”。为什么直到星期一而不是星期天?如果他们在周五租 1 天呢?如果他们从星期六开始租并在第二天归还怎么办?
-
@Mike - 他们只想要一个查询或代码,它可以采用日期范围并确定周末是否在该范围内。如果发生这种情况,他们需要在价格上加 10。他们只是在这种情况下给出了一个具体的例子。问题是“价格加 10”有点太笼统了,至少对我来说是这样。您是否希望修改数据库条目以便需要更新?您只想修改显示的内容吗?这种变化实际上会影响什么?
-
@MikeS 你可能是对的,但在我看来这不是一个具体的例子。
-
@MikeS 在我看来,
Orders表中的price列是根据给定公式计算的。 -
是的,看起来像这样,所以它实际上并没有存储在任何地方,它只是他们已经创建的查询的结果。因此,如果他们想在查询中执行此操作,则必须更改实际价格部分。我只是想知道这样做是否更好。因为你可以使用 php 来做这样的事情:stackoverflow.com/questions/9553731/…