首页 > 解决方案 > 在sqlite中按日期时间列计数,按月份和年份分组

问题描述

我正在使用 xamarin 表单。我对 SQLite group by 中的 datetime 字段有一些问题。我正在使用的下表:

public class DataTable
{
    [PrimaryKey, AutoIncrement]
    public int ID { get; set; }
    public int WorkOrderId { get; set; }
    public Nullable<DateTime> TargetDateTime { get; set; }
}

我有上表的数据,如下所示:

ID  WorkOrderId     TargetDateTime 
1   835     2018-08-16 00:00:00.000
2   836     2018-08-27 00:00:00.000
3   837     2018-09-18 00:00:00.000
4   838     2018-09-29 00:00:00.000
5   839     2018-10-15 00:00:00.000
6   840     2018-11-19 00:00:00.000

我想按 TargetDateTime 列的月份和年份按此表分组,如下所示:

MonthYear   count
07-2018     2
08-2018     2
09-2018     1
10-2018     1

出于查看此表的目的,我在下面使用:

public class DataTableSummary
    {
        public string YearMonth { get; set; }
        public string MonthYear { get; set; }
        public int RecordCount { get; set; }

    }

var com = conn.Query<DataTableSummary>("SELECT strftime('%m-%Y',TargetDateTime) as YearMonth,count(*) as RecordCount FROM DataTable group by strftime('%m-%Y',TargetDateTime)");

但它不起作用。谁能帮我解决这个问题。

标签: c#sqlite

解决方案


推荐阅读