首页 > 数据库 >SqlFunc查询函数

SqlFunc查询函数

时间:2024-05-09 15:14:56浏览次数:15  
标签:函数 thisValue MM object DateTime yyyy SqlFunc 查询

一、常用的C#函数

支持一些常用的C#函数

.ToString()
.Contains()
.Length()
.ToLower()
.ToUpper()  
.ToSubstring()
.Equals()
.Replace()
.EndsWith()
.StartsWith()
.Trim()
.HasValue  
.Value  
.AddDays(AddHours等) 和 常用的 Convert.ToInt32 等

三元    xx??0     时间.DayOfWeek    时间.Date    时间.Day等   (时间-时间).TotalDays

二、逻辑函数

  • 三元判段 ,相当于 it.id==1?1:2

    SqlFunc.IIF(it.Id == 1, 1, 2)
    
  • case when

     SqlFunc
         .IF(st.Id > 1).Return(st.Id)
         .ElseIF(st.Id == 1).Return(st.SchoolId)
         .End(st.Id)
          
    //注意:End因为泛型原因没办传null,如果需要传null这么写.End<int>();
    //等于同 case when
    
  • IsNulll4.6.0.1

    SqlFunc.IsNull(it.Id, 0)//如果是null则是0
     
    //it.Id??0
     
    //如果是等于处理NULL看下面的 EqualsNull
    //ifnull
    

三、时间函数

  • 时间格式化

    //都支持常用yyyy-MM-dd
    it.CreateTime.ToString("yyyy-MM-dd")
     
    //1、SqlServer 2012及以上 用SQL查看版本 :select @@version  
    //5.0.6+ ToString完美支持了所有 yyyy mmm ddd这种格式
      
      
    //SqlServer2012以下  
    // 5.0.6+  只支持( yyyy-MM-dd 、yyyy-MM 和 yyyy-MM-dd hh:mm:ss )  3种格式 
    // ToString("23") 带数字写法生成convert( varchar(20) ,时间, 23)
     
     
    //2、MySql和Sqlite  
    //支持 yyyy-MM-dd 、 yyyy-MM 和 yyyy-MM-dd hh:mm:ss
    //可以使用原生转换: it.CreateTime.ToString("%Y-%m")//只要有%号就会进入原生转换
    //https://www.cnblogs.com/shuilangyizu/p/8036620.html对照表
     
    //3、PgSql和Oracle 完美支持所有C#  yyyy mmm ddd 格式转换
    
  • 获取数据库时间4.6.0.1

    SqlFunc.GetDate(); //数据库服务器时间  
    注意 :Sqlfunc方法只能用在表达式中,如果非表达式中用 db.GetDate()
    
  • 是否是同一天

    SqlFunc.DateIsSame(DateTime date1, DateTime date2)
     
    //例子:查询今天 今日 当天
    SqlFunc.DateIsSame(it.CreateTime,DateTime.Now)
    
  • 是否是同一月

    it.CreateTime.ToString("yyyy-MM")==DateTime.Now.ToString("yyyy-MM") //日期格式化
    
  • 是否是同一年

    it.CreateTime.Year==DateTime.Now.Year
    
  • 是否是同一时间 (dataType 可以是年、月、天、小时、分钟、秒和毫秒)

    SqlFunc.DateIsSame(DateTime date1, DateTime date2, DateType dataType)
    //本月 本年  本天 都可以用这个函数
    
  • 在当前时间加一定时间(dataType 可以是年、月、天、小时、分钟、秒和毫秒)

    SqlFunc.DateAdd(DateTime date, int addValue, DateType dataType)
    
  • 在当前时间加N天

    SqlFunc.DateAdd(DateTime date, int addValue)
     
    //也可以用
    it.CreateTime.AddDasy(1)
    
  • 获取当前时间的年、月、天、小时、分钟、秒或者毫秒

    SqlFunc.DateValue(DateTime date, DateType dataType)
     
    //也可以用
    it.CreateTime.Day
    
  • DateDiff 计算时间差( 已知MSSQL支持)

    SqlFunc.DateDiff(type,DateTime.Now,DateTime.Now.AddDays(1)) 
     //结果等于1 ,相差1天,小的时间在前面,大的时间在后面
     //生成的SQL
     DATEDIFF(day,@MethodConst1, (DATEADD(Day,@MethodConst4,@MethodConst3)) )
      
      
     //也可以
     (时间-时间).TotalDays
    
  • 周数、周几

     //周几
     SqlFunc.DateValue(DateTime.Now, DateType.Weekday);
     //一年中第几周
     SqlFunc.WeekOfYear
    

四、聚合函数

SqlFunc.AggregateSum<TResult>(TResult thisValue) //求和
SqlFunc.AggregateSumNoNull<TResult>(TResult thisValue) //求和(新 支持过滤null)
SqlFunc.AggregateAvg<TResult>(TResult thisValue)//平均值
SqlFunc.AggregateMin(TResult thisValue) //最小
SqlFunc.AggregateMax<TResult>(TResult thisValue) //最大
SqlFunc.AggregateCount<TResult>(TResult thisValue)//统计数量
SqlFunc.AggregateDistinctCount<TResult>(TResult thisValue) //去重统计数量

五、格式转换截取替换等

SqlFunc.Round(it.Price,2) //四舍五入 精度 (5.0.4),两位小数

SqlFunc.Abs(it.Price)//绝对值函数 (5.0.4)
    
SqlFunc.Substring(object value, int index, int length)//字符串截取  
  
SqlFunc.Replace(object value, string oldChar, string newChar)//替换字符串
    
SqlFunc.Stuff(string sourceString, int start, int length, string AddString)//指定位置替换
    
SqlFunc.ToLower(object thisValue)//转小写
    
SqlFunc.ToUpper(object thisValue)//转大写
    
SqlFunc.Trim(object thisValue)//去前后空格
    
SqlFunc.ToInt32(object value) //类型转换
SqlFunc.ToInt64(object value)
SqlFunc.ToDate(object value) 
SqlFunc.ToString(object value) 
SqlFunc.ToDecimal(object value) 
SqlFunc.ToGuid(object value) 
SqlFunc.ToDouble(object value) 
SqlFunc.ToBool(object value)    

标签:函数,thisValue,MM,object,DateTime,yyyy,SqlFunc,查询
From: https://www.cnblogs.com/eago/p/18182276

相关文章

  • 优化cmd中,查询表字段过长情况下的展示效果
    当我们遇到table字段比较多,cmd无法在一行内展示所有字段的情况时可以切换查询语句的结束格式:由以分号;结尾select*fromtable;切换为以/G结尾select*fromtable/G可以切换table的展示格式为以竖列的形式展示一行一行的数据......
  • Python高级之函数参数进阶Optional
    【一】引言在Python3.5版本后引入的typing模块为Python的静态类型注解提供了支持。这个模块在增强代码可读性和维护性方面提供了帮助。本文将深入探讨typing模块,介绍其基本概念、常用类型注解以及使用示例,以帮助读者更全面地了解和应用静态类型注解。【二】基本类型注解【......
  • Python高级之匿名函数
    【一】匿名函数的定义在Python里有两类函数:用def关键词定义的正规函数用lambda关键词定义的匿名函数lambda参数:表达式lambda:定义匿名函数的关键词。函数参数它们可以是位置参数、默认参数、关键字参数表达式,输入函数参数,输出一些值,表达式本身结果就是返回......
  • Python高级之函数对象与闭包函数
    【一】函数对象函数对象是指函数可以被当成数据来处理,python中一切皆为对象【1】函数可以被引用defadd(a,b):returna+bres=add(3,4)print(res)#7【2】函数作为容器类型的元素defadd(a,b):returna+bnum_list=[add,1]res=num_list[0......
  • Python高级之函数的参数
    【一】形参和实参函数的参数分为形参和实参,形参就是定义在函数名后面括号里的参数(用来接收外部传来的值),实参就是调用函数时,括号里传进去的值(值可以是常量、变量、表达式)defadd(x,y):returnx+y#实参是常量print(add(3,4))#输出7#实参是变量x=3y=4prin......
  • Python高级之函数
    【一】函数的基本使用我们在前面的学习中,所有的功能代码都集中在一块,需要使用同一功能时,需重复编写该功能的代码,这样比较麻烦,当我们到后面代码变得越来越长,也不利于我们修改其中一个小功能的代码我们完全可以从现实生活中找到简化程序设计的方案:比如一个修理工会事先准备好螺......
  • 一篇文章掌握Python中多种表达式的使用:算术表达式、字符串表达式、列表推导式、字典推
    Python中的表达式可以包含各种元素,如变量、常量、运算符、函数调用等。以下是Python表达式的一些分类及其详细例子:1.算术表达式算术表达式涉及基本的数学运算,如加、减、乘、除等。#加法表达式sum=3+5#结果为8#乘法表达式product=4*6#结果为24#复......
  • python适应不同场景的函数 - *args, **kwargs
    在Python中,*args和**kwargs是用来处理函数中不定数量的参数的特殊语法。*args和**kwargs介绍*args*args用于传递不定数量的位置参数,它会将传递给函数的位置参数收集到一个元组中。例如:defmy_func(*args):forarginargs:print(arg)my_func(1,2,3)在这个......
  • mysql多表查询
    1.多表查询  项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对多(多对一)多对多一对一2.分类连接查询内连接:相当于查询A、B交集部分数据外......
  • SQL查询语句执行顺序
    SQL语句定义顺序SELECTDISTINCT<select_list>FROM<left_table><join_type>JOIN<right_table>ON<join_condition>WHERE<where_condition>GROUPBY<group_by_list>HAVING<having_condition>ORDERBY<order_by_c......