在DATETIME对象中查询上周的项目

时间:2013-08-09 08:16:16

标签: sql sqlite

拥有一个带有created字段的sqlite数据库,该字段是DATETIME类型。

我可以使用以下查询从过去60天内创建的数据库中提取所有项目:

SELECT * FROM TABLE where created >= date('now' , '-60 day')

我想要一个只从上周,周日到周六提取所有项目的查询。我将如何构建这样的查询?

1 个答案:

答案 0 :(得分:1)

使用strftime,您可以检索星期几。因此,从当前日期减去该数字将为您提供上周日的日期(如果是星期日,则为今天)。

select date('now' , (select '-' || strftime('%w', date('now')) || ' days'))

您可以将此作为进一步追溯的基础。例如,此查询将为您提供最近星期日之前的星期日日期。

select date('now' ,
    (select
        '-'
        || (cast(strftime('%w', date('now')) as integer) + 7)
        || ' days'
    ))

因此,通过一些基本数学,您可以构建所需的日期范围。