【发布时间】:2021-05-12 15:34:30
【问题描述】:
我想创建一个查询,返回本周特定日期的行数。例如,如果 dayNumber = 1,它应该返回 BookSaveTime 为星期一的图书数。如果dayNumber = 2,它应该返回星期二的计数,等等。
var week = DateTime.Today.AddDays(-(((int)DateTime.Today.DayOfWeek+6)%7));
return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE BookSaveTime > ?;", week);
目前,此查询返回自一周开始以来的书籍数量 - 但我不知道如何修改它以返回给定指定日期的计数 - 例如,星期一或星期二。
public MyAppSQLiteDatabase()
{
try
{
database = DependencyService.Get<ISQLiteService>().GetConnection(DbFileName);
database.CreateTable<Book>();
CurrentState = "Database created";
}
catch (SQLiteException ex)
{
CurrentState = ex.Message;
}
}
public int GetDailyCount(int dayNumber){
var day = DateTime.Today.AddDays(-(((int)DateTime.Today.DayOfWeek+6)%dayNumber));
return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE BookSaveTime = ?;", day );
}
书籍类:
public class Book: INotifyPropertyChanged
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
private DateTime bookSaveTime;
public DateTime BookSaveTime
{
get
{
return bookSaveTime;
}
set
{
if (bookSaveTime != value)
{
bookSaveTime= value;
OnPropertyChanged("BookSaveTime");
}
}
}
}
【问题讨论】:
-
对于初学者,您应该使用等于而不是大于。
bookEntryTime列的数据类型是什么? -
如果您可以显示一些除了表格之外的内容,尤其是在
bookEntryTime列中的内容,以避免任何猜测。 -
请检查我的代码,让我知道它是否正确地满足了您的目的。最良好的祝愿 。 :-)
标签: c# sqlite xamarin sqlite.net