计算本周 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 数据库中的行数的主要内容,如果未能解决你的问题,请参考以下文章