我正在使用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个或更多记录?
任何指导意见:)
答案 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。