查询客户ID是否在上周有先前的订单:如何?

时间:2011-06-21 10:05:59

标签: sqlite date

我正在使用SQLite 3.7.4,并且有一个包含以下内容的表:

TABLE: 'Orders'
ID     OrderDate
1234   2011-06-01 00:00:00
1245   2011-06-04 00:00:00
1234   2011-06-05 00:00:00

我希望能够选择'OrderDate'和& 'ID',对于给定的OrderDate,在过去1周内有先前的订单。

所以,对于上面的数据:

  • 第一个记录ID 1234有一个订单 在2011-06-01 00:00:00,但没有 上一个 - 所以没有被选中。

  • 下一个记录ID 1245有一个订单 在2011-06-04 00:00:00但没有 在2011-06-04之前一周,所以没有 选择。

  • 第3个记录ID 1234订单 2011-06-05 00:00:00有一个以前 订单于2011-06-01,所以此记录 被选中。

我刚刚设法使用strftime('%s',OrderDate)来了解日期差异,但无法通过获取OrderDate记录的yyyy-mm-dd部分进行查询并回顾' - 7天'看看该范围内是否有1个或更多记录?

任何指导意见:)

1 个答案:

答案 0 :(得分:1)

我不明白,但考虑到样本数据,这会给出您正在寻找的输出。

sqlite> select o1.id, o1.orderdate from orders o1
   ...> inner join orders o2 on (o1.id = o2.id
   ...> and o2.orderdate >= date(o1.orderdate, '-7 day')
   ...> and o2.orderdate < o1.orderdate);
1234|2011-06-05

您应该查看SQLite Date and Time Functions