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")解析功能。

sqlsugar入门(2)-C#方法与sugar自定义函数的区别的更多相关文章

  1. MySQL存储过程/存储过程与自定义函数的区别

    语法: 创建存储过程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parame ...

  2. (转)MySQL存储过程/存储过程与自定义函数的区别

    转自:http://www.cnblogs.com/caoruiy/p/4486249.html 语法: 创建存储过程: CREATE [definer = {user|current_user}]  ...

  3. 【存储过程】MySQL存储过程/存储过程与自定义函数的区别

    ---------------------------存储过程-------------------- 语法: 创建存储过程: CREATE [definer = {user|current_user ...

  4. SQL中存储过程和自定义函数的区别

    存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...

  5. SQL中存储过程和自定义函数的区别(转载)

    存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...

  6. C++入门经典-例5.7-调用自定义函数交换两变量值,传入指针

    1:代码如下: // 5.7.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...

  7. Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数

    10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...

  8. 基本开题的感觉是了-MySQL继续继续(自定义函数&存储过程)

    hi 感觉论文开题基本确定了,凯森 1.MySQL -----自定义函数----- ----基本 两个必要条件:参数和返回值(两者没有必然联系,参数不一定有,返回一定有) 函数体:合法的SQL语句:以 ...

  9. sqlserver中自定义函数+存储过程实现批量删除

    由于项目的需要,很多模块都要实现批量删除的功能.为了方便模块的调用,把批量删除方法写成自定义函数.直接上代码. 自定义函数: ALTER FUNCTION [dbo].[func_SplitById] ...

随机推荐

  1. burp suite 之 Decoder(解码) Comparer(比较器) Extender(扩展)

    Decoder模块 将原始数据转换成各种编码和哈希表的简单工具,它能够智能地识别多种编码格式 Decoder as..解码 Encode as...编码 Hash : 哈希值计算 Smart deco ...

  2. Centos-统计文件或目录占用磁盘空间-du

    du 显示文件或目录所占磁盘空间总量 相关选项 -s 显示文件或者整个目录的大小,默认单位为KB -b 指定单位为byte -h     人类友好读方式显示 -m 指定单位为 MB

  3. 【小白学PyTorch】16 TF2读取图片的方法

    [新闻]:机器学习炼丹术的粉丝的人工智能交流群已经建立,目前有目标检测.医学图像.NLP等多个学术交流分群和水群唠嗑的总群,欢迎大家加炼丹兄为好友,加入炼丹协会.微信:cyx645016617. 参考 ...

  4. 剑指offer-二叉树

    1. 平衡二叉树 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 解: 要么是一颗空树,要么左右子树都是平衡二叉树且左右子树深度之差不超过1 1 # class TreeNode: 2 # def _ ...

  5. Django新手图文入门教程

    版权所有,转载需注明来源! 本文是广受大家欢迎的<Django1.10新手图文入门教程>的2.1版本升级篇,原1.10版本传送门点击我 本文面向有一些的Python基础,但刚接触web框架 ...

  6. IDEA 使用的配置

    IDEA 使用 工欲善其事必先利其器,选择适合自己的 IDE,会让自己事倍功半.作为 Java 开发环境,有人喜欢 Eclipse,有人喜欢 idea,这其中的差别对比这里不做对比,需要了解的朋友可以 ...

  7. Matlab中的uigetfile用法

    参考:https://ww2.mathworks.cn/help/matlab/ref/uigetfile.html?searchHighlight=uigetfile&s_tid=doc_s ...

  8. 洛谷 P6851 【onu】贪心

    题目描述 题目传送门 分析 因为小 \(D\) 打出的牌与小 \(C\) 打出的牌花色必须相同,所以我们需要按照花色分类讨论 对于某一种花色 如果小 \(C\) 没有这种花色的牌但是小 \(D\) 有 ...

  9. Consul 学习笔记-服务注册

    Consul简介: Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面.这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建完整的服务网格.Consul需要 ...

  10. try with resource当中你没有注意到点。。

    怎么使用try with resource语法 在 JDK 9 中更简洁使用 try-with-resources 语句 try with resource当中你没有注意到点 try with res ...