在两个日期之间从mysql获取价格

时间:2018-03-29 08:04:42

标签: mysql sql sum

在mysql数据库中我有这样的表:

StartDate       EndDate         Price
01.01.2017      01.06.2017      100
02.06.2017      01.12.2017      150

在某些日子之间获得价格的最佳解决方案是什么。例如,如果我发送日期25.05.2017 as start date05.06.2017 as end date,我需要在这些日期之间获得价格总和。

2 个答案:

答案 0 :(得分:0)

试试这个

select sum(Price) as total_price from table_name 
where StartDate >= 'given_startdate' and EndDate <= 'given_enddate'

答案 1 :(得分:0)

要查找重叠时段,请使用以下逻辑:

where start_1 <= end_2 and end_1 >= start_2

在你的情况下:

where startdate <= date '2017-06-05' and enddate >= date '2017-05-25'

编辑:

似乎您希望将日期范围扩展到每天一行。加入日历表(如果您没有,请创建它,您将在很多地方使用它):

select sum(price)
from mytable join calendar
  on calendardate between startdate and enddate