Sql 如何查找订单之间经过的天数

Sql 如何查找订单之间经过的天数,sql,oracle11g,Sql,Oracle11g,如何查找从这组数据订购每个菜单项之间经过的天数: account menuItem beginDate endDate '123' 'I1' '2016-01-10' '2016-01-16' '145' 'I1' '2016-03-11' '2016-03-26' '156' 'I2' '2016-02-10' '2016-02-26' 到目前为止,我有以下疑问:

如何查找从这组数据订购每个菜单项之间经过的天数:

account    menuItem       beginDate      endDate
'123'      'I1'           '2016-01-10'   '2016-01-16'
'145'      'I1'           '2016-03-11'   '2016-03-26'
'156'      'I2'           '2016-02-10'   '2016-02-26'
到目前为止,我有以下疑问:

Select  menuItem, Datediff(day, beginDay, endDay) DaysOrdered
From MealCheckout
Group By menuItem
Order By beginDate, endDate

因此,输出应该是例如
menuItem I1
有两条记录。因此,它应该取第一条记录的开始日期,即“2016-01-10”,以及第二条记录的最后一次出现的结束日期,并从最后一条记录(即“2016-03-26”)中取
结束日期,然后减去
开始日期
结束日期
经过的时间。上面的查询不起作用,它不会输出任何值。

您只需在Oracle中减去日期即可获得经过的天数。因此:

Select menuItem, max(endDay) - min(beginDay) DaysOrdered
From MealCheckout
Group By menuItem;

您的查询应在Oracle中返回一个错误;没有
datediff()
函数。

谢谢,这是正确的查询!我不知道没有datediff()函数。
  select menuItem,
  max(to_date(endDay,'YYYY-MM-DD'))-min(to_date(beginDay,'YYYY-MM-DD'))
  From MealCheckout
  Group By menuItem;