SELECT COUNT(l.LogSeq), date_format(l.CreateDate,'%Y-%m') CreateDateByMonth FROM LOL l
WHERE l.CreateDate>='2017-1-1' AND l.CreateDate<='2017-8-16'
GROUP BY CreateDateByMonth

把数据按照月份分组获取所需要的数据SQL语句变为EF,错误的写法:

//先做基本查询
var querySql = from l in LOL
select new LOL
{
LogSeq = l.LogSeq,
CreateDate = l.CreateDate
};
//条件在基本的查询中完成
if (query.CreateDateStart != null)
{
querySql = querySql.Where(t => t.CreateDate >= query.CreateDateStart);
}
if (query.CreateDateEnd != null)
{
querySql = querySql.Where(t => t.CreateDate <= query.CreateDateEnd);
}
//然后把基本的条件过滤后的查询语句去分组
var ret = querySql.GroupBy(t => new { t.CreateDate }).Select(s => new LOL
{
LogSeq = s.Sum(m => m.LogSeq),
CreateDate = s.Key.CreateDate
});

这样没有对数据进行安月分组,如果有时分秒的时候分组失败,如果把时间类型的字段tostring(“”yyyy-MM-dd“”)又不会被linq所承认,这时候需要把时间拆成年,月,日这样的多个字段。返回列表后再去拼接形成一个日期,正确写法如下:

   //先做基本查询,这里不可以使用select  new   LogClinicDataOperationInfo这样的写法,需要匿名去写linq
var querySql = from l in _logClinicDataOperationRepository.Table
select new
{
LogSeq = l.LogSeq,
CreateDate=l.CreateDate,
Year = l.CreateDate.Value.Year,
Mounth= l.CreateDate.Value.Month,
}; //条件在基本的查询中完成
if (query.CreateDateStart != null)
{
querySql = querySql.Where(t => t.CreateDate >= query.CreateDateStart);
}
if (query.CreateDateEnd != null)
{
querySql = querySql.Where(t => t.CreateDate <= query.CreateDateEnd);
}
//然后把基本的条件过滤后的查询语句去分组,返回一条日期的年和月
var result = querySql.GroupBy(t => new { t.Year, t.Mounth }).Select(s => new LogClinicDataOperationInfo
{
Year = s.Key.Year,
Mounth = s.Key.Mounth,
Count = s.Count()
});

在写EF 时把时间格式化的做法的更多相关文章

  1. 3种 Springboot 全局时间格式化方式,别再写重复代码了

    本文收录在个人博客:www.chengxy-nds.top,技术资料共享,同进步 时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格 ...

  2. 【转】深入理解Java:SimpleDateFormat安全的时间格式化

    [转]深入理解Java:SimpleDateFormat安全的时间格式化 想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用 ...

  3. SimpleDateFormat时间格式化存在线程安全问题

    想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调 ...

  4. SimpleDateFormat安全的时间格式化

    SimpleDateFormat安全的时间格式化 想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和 ...

  5. 关于SimpleDateFormat安全的时间格式化线程安全问题

    想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调 ...

  6. JavaScript日期时间格式化函数

    这篇文章主要介绍了JavaScript日期时间格式化函数分享,需要的朋友可以参考下 这个函数经常用到,分享给大家. 函数代码: //格式化参数说明: //y:年,M:月,d:日,h:时,m分,s:秒, ...

  7. 【转载】关于SimpleDateFormat安全的时间格式化线程安全问题

    想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调 ...

  8. (转)关于SimpleDateFormat安全的时间格式化线程安全问题

    想必大家对SimpleDateFormat并不陌生.SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调 ...

  9. 关于EasyUI DataGrid行编辑时嵌入时间控件

    本人做一个名为“安徽中控”项目时,为快速开发基础数据增删改模块,遂采用EasyUIDatagrid将所有增删改查的操作都集中于表格中,并且所有增删改查操作都集中于泛型对象,从而不必为每个表写具体的增删 ...

随机推荐

  1. Swagger的坑

    swagger.pathPatterns如果是譬如/w/.*,那么如果API中以w开头的描述就会在swagger-ui中显示不出来

  2. unittest框架

    在我们真正的编写测试用例之前,我们需要了解一下测试框架. unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做接口的自动化测试. unittest框架为 ...

  3. jq得到总价

    <html><head> <title></title> {load href="/static/js/jquery-1.9.1.min.js ...

  4. Dev GridView RowCellClick事件与MouseDown事件

    GridView处于可编辑状态,左键点击默认为“进入编辑”. 将GridView的OptionsColumn.AllowEdit设置为false后左键可触发RowCellClick.但有时候,既希望G ...

  5. 在MD中使用Emoji

    mark语法中支持emoji表情 具体语法是:emoji: 比如我输入 :smile: 就会出现微笑

  6. Hive学习(一)

    https://www.cnblogs.com/qingyunzong/p/8707885.html http://www.360doc.com/content/16/1006/23/15257968 ...

  7. Selenium+Python+Webdriver:保存截图到指定文件夹

    保存图片到指定文件夹: from selenium import webdriverfrom pathlib import Pathfrom time import sleepdriver = web ...

  8. zabbix--高级篇-监控docker服务(一)

    一,配置zabbix 客户端环境 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix//x86_64/zabbix-release-.el7.noarc ...

  9. centOS和redHat防火墙开放端口

    发现在CentOS 7上开放端口用iptables没效果(或者是sodino没找到正确的命令,传说Centos7 下默认的防火墙是 Firewall,替代了之前的 iptables)… 使用firew ...

  10. [转]理解js中的原型链,prototype与__proto__的关系

    本文转自:http://rockyuse.iteye.com/blog/1426510 说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script typ ...