1、使用tostring获取当天数据

            var list = ssc.Queryable<Student>().Where(o => o.CreateTime.Value.ToString("yyyy-MM-dd") == DateTime.Today.ToString("yyyy-MM-dd")).ToList();
var sql = ssc.Queryable<Student>().Where(o => o.CreateTime.Value.ToString("yyyy-MM-dd") == DateTime.Today.ToString("yyyy-MM-dd")).ToSqlString();

看结果也是能查询到数据但是生成的sql语句为

SELECT [Id],[Name],[Version],[SchoolId],[Grade],[Age],[CreateTime],[Type],[IsDelete] FROM [Student]  WHERE (DateName(Year,[CreateTime])+'-'+DateName(Month,[CreateTime])+'-'+DateName(Day,[CreateTime]) =DateName(Year,'2020/10/11 0:00:00')+'-'+DateName(Month,'2020/10/11 0:00:00')+'-'+DateName(Day,'2020/10/11 0:00:00'))

和实际需求还是有点差异。

2、使用sugar内置函数获取当天数据

            var list1 = ssc.Queryable<Student>().Where(o=>SqlFunc.DateIsSame(o.CreateTime,DateTime.Today)).ToList();
var sql1 = ssc.Queryable<Student>().Where(o => SqlFunc.DateIsSame(o.CreateTime, DateTime.Today)).ToSqlString();

生成的sql语句为

SELECT [Id],[Name],[Version],[SchoolId],[Grade],[Age],[CreateTime],[Type],[IsDelete] FROM [Student]  WHERE  (DATEDIFF(day,[CreateTime],'2020/10/11 0:00:00')=0)

3、自定义扩展函数获取当天数据

添加静态扩展方法

public static DateTime ToDate111<T>(this T str)
{
throw new NotSupportedException("Can only be used in expressions");
}

添加扩展方法,解析为语句的时候注意一下,字段名称和值

            expMethods.Add(new SqlFuncExternal()
{
UniqueMethodName = "ToDate111",
MethodValue = (expInfo, dbType, expContext) =>
{
if (dbType == DbType.SqlServer)
if (expInfo.Args.Count == 0)
{
return string.Format(" getdate() ");
}
else
{
return string.Format(" cast (CONVERT (varchar ( 100), {0} , 111) as date) ", expInfo.Args[0].MemberName);
}
if (dbType == DbType.MySql)
if (expInfo.Args.Count == 0)
{
return string.Format(" getdate() ");
}
else
{
return string.Format(" date_format( {0}, '%Y/%m/%d' ) ", expInfo.Args[0].MemberName);
}
else
throw new Exception("未实现");
}
});

生成的sql语句为

SELECT [Id],[Name],[Version],[SchoolId],[Grade],[Age],[CreateTime],[Type],[IsDelete] FROM [Student]  WHERE (cast (CONVERT (varchar ( 100), [CreateTime] , 111) as date) = '2020/10/11 0:00:00' )

4、自行扩展ToString("yyyy-MM-dd")功能

Demo地址:https://gitee.com/xuanyun2018/sqlsugardemo.git

下一章节修改源码看是否能支持原生ToString("yyyy-MM-dd")解析功能。

最新文章

  1. PHP笔记(HTML篇)
  2. linux一些目录功能
  3. react native 学习一(环境搭配和常见错误的解决)
  4. Android NDK目录介绍
  5. PHP基础 数组函数 的总结
  6. IntelliJ IDEA + Maven创建Java Web项目
  7. ThinkPHP之中的验证码的小示例
  8. UVa 10943 (数学 递推) How do you add?
  9. [React Fundamentals] Component Lifecycle - Mounting Usage
  10. 禁止生产pyc
  11. (JAVA)从零开始之--打印流PrintStream记录日志文件
  12. 数学之路(3)-机器学习(3)-机器学习算法-SVM[7]
  13. unicode,gbk,utfF-8字符编码方式的区别
  14. AX_NumberSeq
  15. Python-复习-文件操作-21
  16. Hisat2 bowtie2比对结果解读(Hisat2 Alignment summary)
  17. 如何快速成为一名Linux运维工程师
  18. Unity 3D-Navigation网格导航系统使用教程
  19. Spark ML 几种 归一化(规范化)方法总结
  20. vue 的事件冒泡

热门文章

  1. 在Linux系统下搭建和配置一个minio文件服务器(二)
  2. Python练习题 019:求分数序列之和
  3. 使用精灵代理ip最节约成本的策略!
  4. Boost 信号与槽,获取槽函数返回值,使用占位参数传递信号携带的参数
  5. #ifdef _DEBUG/ #define new DEBUG_NEW/ #endif的作用
  6. JDBC Java 连接 MySQL 数据库
  7. 记录编译JDK11源码时遇到的两个问题
  8. JVM 第四篇:可视化 JVM 故障处理工具
  9. pytest文档44-allure.dynamic动态生成用例标题
  10. selenium环境配置学习笔记