sql-server - 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
我想做类似上面的事情。
解决方案
SET @months = @datediff / 720
SET @weeks = (@datediff % 720) / 168
SET @hours = (@datediff % 720) % 168
无需循环
推荐阅读
- javascript - 如何排列/编辑多个数组 | Javascript
- c++ - 错误:'operator<<' 不匹配(操作数类型是 'std::ostream' {aka 'std::basic_ostream
'} 和 'void')| - security - 同一个 Fargate 集群下的 Pod 可以互相调用 api 吗?
- java - 如何从android studio中的编辑文本创建包含文本和内联图像的pdf文件
- python - 制作桌面通知器?
- postgresql - 如何在 shell 脚本中组合 exec 命令
- python - 在 Python 中按两列分组
- html - 打印窗口中的分页符:表格边框未显示
- javascript - Lorem ipsum dolor sit amet
- python - python调试器中是否有任何选项可以在执行代码时修改代码中的一行,或者跳过某些行的执行?