计算本周 SQLite 数据库中的行数

Posted

技术标签:

【中文标题】计算本周 SQLite 数据库中的行数【英文标题】:Counting the number of rows in an SQLite database for this week 【发布时间】: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(),它应该返回从星期一开始到星期五(包括星期五)输入的所有记录的计数。 【参考方案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);

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

【讨论】:

以上是关于计算本周 SQLite 数据库中的行数的主要内容,如果未能解决你的问题,请参考以下文章

计算 SQLite 数据库中的行数

如何使用 JS、Node.JS 和 Discord.JS 获取 SQLITE 数据库中的行数?

在 TSQL 中,如何添加一个计数列来计算查询中的行数?

重置 SQLite3/MySQL 中的行数计数

Android中的SQLite查询来计算行数

SQL 计算表中的行数