0

拥有一个带有createdDATETIME 类型字段的 sqlite 数据库。

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

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

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

4

1 回答 1

1

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

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

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

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

因此,通过一些基本的数学运算,您可以构建您想要的日期范围。

于 2013-08-09T08:28:30.333 回答