【问题标题】:Count DB rows since the start of this month自本月初以来计算数据库行数
【发布时间】:2021-02-01 22:50:00
【问题描述】:

我希望返回当前月份的 DateTime 的月份元素为 bookEntryTime 的图书的行数(计数)。

   public int GetMonthlyCount()
    {
        var today = DateTime.Today;
        var month = new DateTime(today.Year, today.Month, 1);
        var first = month.AddMonths(-1);
        return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE bookEntryTime > ?;", first);
    }

此查询还计算上个月输入的图书。查询有什么问题?

【问题讨论】:

  • 你试过没有var first = month.AddMonths(-1); 吗?查找当前月份不是持续 30 天吗?
  • 这真是一个纯粹的sqlite问题,与Xamarin无关
  • 正如@Cfun 指出的那样,您通过month.AddMonths(-1); 明确包括上个月

标签: c# sqlite


【解决方案1】:

由于您只对当前月份感兴趣,而不是最近 30 天(不是 1 个月期间),请删除此行:

 var first = month.AddMonths(-1);

当然现在使用的参数是month

return database.ExecuteScalar<int>("SELECT count(*) FROM Book WHERE bookEntryTime > ?;", month );

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多