首页 > 解决方案 > SQL-计算一个项目使用多长时间的价格-每月价格、每周价格和每小时价格

问题描述

假设我们要租一辆自行车。有每月(100 美元)、每周(10 美元)和每小时(1 美元)的价格。如果我使用它 1 个月、2 周和 4 小时,价格将是 124 美元。我有一个 while 循环,它会做模数,看看时间是否比每月和每周长,并添加到价格并减去借用项目的持续时间。

SET @dateDiff =   DATEDIFF(hour,@TimeIn,@TimeOut); 
-- 7 days is 168 hours
-- 30 days is 720 hour

WHILE  @bool != 1  
    BEGIN  

    IF (@dateDiff > 720)
        SET  @totalPrice += (@dateDiff%720) * @monthlyPrice
        SET @dateDiff = @dateDiff - (@dateDiff%720)
    ELSE IF  (@dateDiff > 168)
        SET  @totalPrice += (@dateDiff%168) * @weeklyPrice
        SET @dateDiff = @dateDiff - (@dateDiff%168)
    ELSE
        SET  @totalPrice += @dateDiff * @weeklyPrice
        SET @bool = 1;
END  

我想做类似上面的事情。

标签: sql-servertsql

解决方案


SET @months = @datediff / 720
SET @weeks = (@datediff % 720) / 168
SET @hours = (@datediff % 720) % 168

无需循环


推荐阅读