【问题标题】:Counting the number of rows in an SQLite database for this week计算本周 SQLite 数据库中的行数
【发布时间】:2021-05-02 22:14:34
【问题描述】:

我有以下查询,它返回过去 7 天输入的图书数量。是否可以修改查询,使其仅返回自本周开始以来输入的人数?

public int GetWeeklyCount()
 {
       var week = DateTime.Today.AddDays(-7);
       return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE bookEntryTime > ?;", week);
 }

【问题讨论】:

  • “一周开始”是什么意思?
  • @CaiusJard 从任何给定周的星期一开始。例如,如果在星期五调用 GetWeeklyCount(),它应该返回从星期一开始到星期五(包括星期五)输入的所有记录的计数。

标签: c# sqlite xamarin


【解决方案1】:

人们对一周开始的含义各不相同,但例如,如果您认为一周从星期一开始:

var week = DateTime.Today;
while(week.DayOfWeek != DayOfWeek.Monday)
    week = week.AddDays(-1);
return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE bookEntryTime > ?;", week);

你也可以直接计算:

var week = DateTime.Today.AddDays(-(((int)DateTime.Today.DayOfWeek+6)%7));
return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE bookEntryTime > ?;", week);

但对我来说,它是相对非自我记录的,性能优势很小

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多