【发布时间】:2014-02-22 00:49:39
【问题描述】:
我正在使用设备预订系统,需要计算设备的租用天数,以便将其乘以每次预订的每日总成本,然后将查询中所有预订的总成本相加。设备取件日期和返回日期存储在单独的字段中,如 yyyy/mm/dd 00:00:00.000(没有条目包含除 00:00:00.000 以外的时间),还有取件 AM/PM 和返回 AM 字段/下午。如果取件日期在下午,则该天不算作一天,如果返回日期在上午,则该天不算作一天。理想情况下,我想使用下面的查询来达到我的最终目标,但是它计算的天数太多了。
SELECT
SUM(TOTAL*DATEDIFF(day,PICKUPDT,RETURNDT))
FROM
RENTAL
WHERE
AGENTCODE = '$AGENT' AND
PICKUPDT >= '06/01/2013' AND
RETURNDT <= '06/01/2014' AND
PAIDOUT = '1' )
以上内容嵌套在我正在运行的整个查询中。 TOTAL 字段是每天的租金成本。我需要一种方法来准确计算向消费者收取费用的天数。我感谢可以就该主题提供的任何帮助。这是我在这里的第一个问题,并为我犯的任何错误道歉。
我正在努力完成的屏幕可以在这里看到:
【问题讨论】:
-
我们可以知道这个
AM/PM字段的名称吗? -
RETURNAMPM, PICKUPAMPM 是这两个字段,如果我能提供任何其他信息,请告诉我。谢谢
-
总体而言,此查询将非常困难。您是否研究过 MySQL IF() 构造? stackoverflow.com/questions/5951157/…
-
这在 SQL 服务器环境中是否同样有效?
-
我的错,应该阅读标签。我可以检查
标签: php sql sql-server datediff