mysql中常用的函数

通常我们在业务处理的时候会在mapper下的xml文件下sql语句中去使用mysql的一些函数去简化开发。例如时间段的匹配等。

以下是常见的函数

返回字母的大小写(非字母字符不进行改变)

SELECT upper(username) FROM t_user where del_flag = 0 ;
SELECT LOWER(username) FROM t_user where del_flag = 0 ;

返回字符的长度

SELECT LENGTH(real_name),real_name FROM t_user where del_flag = 0 ;

在中文输入下的每个字符都是占用三个长度(慎用)

 将返回的字段中的内容进行替换返回

select replace(real_name,'员','猴') new_real_name,real_name from t_user where del_flag = 0

截取字符串

# 截取字符串,起始位置,截取的长度  返回的是截取的第二个位置之后的三个字符串,长度不够的话不会去补空格
select SUBSTR(real_name,2,3) new,real_name from t_user where del_flag = 0

# 截取名字的最后一位
select SUBSTR(real_name,(LENGTH(real_name)/3),1) new,real_name from t_user 

 返回ascll码

select ASCII(real_name) new,real_name from t_user

返回A字符串是否在B出现,出现返回第一次出现的位置,没有出现返回为0

select ltrim("  str  ") from dual;
select rtrim("  str  ") from dual;
select locate("bxs","footbar") from dual;

   对字符串左右进行拼接为目标长度

select lpad("he",5,"?") from dual;
select rpad("he",5,"?") from dual;

   返回字符串的左边/右边几位

select right(username,3),username from t_user;
select left(username,3),username from t_user;

 去除返回字符串的空格

select ltrim("  str  ") from dual;
select rtrim("  str  ") from dual;

 数字计算函数

# 四舍五入(可以设置保留几位小数)        
select round(129.556),round(-129.5534,2) from dual;
# 对返回的数字取绝对值
select abs(-20) from dual;
# 求模取余 常用来判断奇偶 
select mod(10,2) from dual;
# 返回 不大于数字的最大整数
select floor("3.96") from dual;
#  返回 不小于数字的最大整数
select ceiling(1.23) from dual;
# 对小数点后的位数进行截断 返回保留几位小数
select truncate(1.999,0) from dual;

在业务中会用到很多时间函数

# 获取当前时间 2024-04-10 14:55:49
    select NOW() from dual;
    select sysdate() from dual; # orcal 使用较多
#只获取日期的
select curdate() from dual; # 2024-04-10
#只获取时间的
select curtime() from dual; # 14:58:34

# 返回指定日期是星期几(俩种不同的需要对应俩种不同的字典对应)
select  dayofweek('2017-03-25') from dual; # 星期日是 1 以此类推 7是星期6
select  WEEKDAY(curdate()) from dual; #  0 是星期1 一次类推 6是星期日 

# 返回一个月的几号
select dayofmonth("2017-03-24") from dual;
# 返回一年中的第几天(包含当前天)
 select dayofyear("2017-03-24") from dual
# 返回一年的第几月
select month("2017-03-24") from dual;
# 查看当前时间是该年的第几季度
select Quarter(NOW()) from dual;
# 返回当前时间是该年的第几周
select week("2017-01-10") from dual;
# 返回当前年
select YEAR("2017-01-10") from dual;
# 返回当前日期再过几个月后的日期 日期的格式,月数
select period_add(201712,3) from dual;

# 查询数据库的一些信息 

 返回当前数据库
select database() from dual;
返回当前用户
select system_user() from dual;
返回当前数据版本
select version() from dual;

最后拓展俩个函数

MD5加密
select md5("123456") from dual;

格式化
select format(123456789,3) from dual;
 

 

 

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值