刘子煜

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

mysql中的函数

数学函数

  • abs(x) 绝对值
  • pi() π
  • sqrt(x) 平方根
  • mod(x,y) 取模
  • ceil(x) 向上取整
  • floor(x) 向上取整
  • rand() 取0到1之间的随机数
  • round(x) 四舍五入
  • round(x,y) 保留y位小数的四舍五入
  • truncate(x,y) 保留y位小数
  • sign(x) 返回符号
  • pow(x,y) x的y次方
  • exp(x) e的x 次方
  • log(x) 对数
  • log10(x) 10的对数
  • radians(x) 角度转弧度
  • degrees(x) 弧度转角度
  • sin(x) 正弦 asin(x) 反正弦
  • cos(x) 余弦 acos(x) 反余弦
  • tan(x) 正切 atan(x) 反正切
  • cot(x) 余切

字符串函数

  • char_length(str) 字符个数
  • length(str) 字节个数,utf-8一个汉字三个字节
  • concat(s1,s2...) 拼接
  • concat_ws(x,s1,s2,s3...) 用x进行连接,javascript的[].join(x)
  • insert(str,pos,len,newstr) javascript的[].splice(pos,len,new)
  • lower(s) lcase(s) 转小写
  • upper(s) ucase(s) 转大写
  • left(s,len) 从左截取len slice(0,len)
  • right(s,len) 从右边截取len slice(-len)
  • lpad(s1,len,s2) 用s2重复填充s1到制定长度(左侧)
  • rpad(s1,len,s2) 用s2重复填充s1到制定长度(右侧)
  • ltrim(s) rtrim(s) trim(s) 去空白字符
  • trim(s1 from str) 从str中删除两端的s1
  • repeat(str,n) 重复n次str
  • space(n) n个空格
  • strcmp(s1,s2) 比大小
  • replace(str,s1,s2) 用s2替换s1
  • location(s1,str) 获取子串下标str.indexOf(s1)
  • position(s1 in str) 获取子串下标,同上
  • instr(str,s1) 获取子串下标,同上
  • reverse(s) 反转字符串
  • elt(n,s1,s2,s3...) 从后面的数组中取[s1,s2,s3...][n-1]
  • field(s,s1,s2,s3...) 返回s的下标
  • find_in_set(s,set) 返回s在set中的下标,s中不能有逗号
  • make_set(bits,s1,s2,s3...) 通过比特位获取一个set
    下标一般是从1开始的,而不是0,没有找到的情况下才是0

日期函数

  • current_date curdate 当前日期,仅年月日
  • current_time curtime 当前时间,仅时分秒
  • current_timestamp localtime now sysdate 返回系统当前时间
  • unix_timestamp (date) 无参数,返回当前时间戳,有参数,转时间戳
  • from_unixtime(date) 时间戳转时间
  • utc_date() 返回UTC日期
  • utc_time() 返回UTC时间
  • month(date) 返回月份(数字)
  • monthname(date) 返回月份(英文单词)
  • dayname(date) 星期(英文单词)
  • dayofweek(date) 星期(1-7) 1是周天
  • weekday(date) 星期(0-6) 0是周一
  • week(date,mode) 一年的第几周,mode用来区分每周的第一天是星期天还是星期一,返回的范围是0-53还是1-53
  • weekofyear(date) 等同于week(date,3) 1-53
  • dayofyear(date) 1-366
  • dayofmonth(date) 1-31
  • year(date) 获取年份 1970-2069
  • quarter(date) 季度 1-4
  • minute(time) 分钟 0-59
  • second(time) 秒 0-59

转换与计算

  • timetosecond(time) 时间转秒
  • extract(type from date/time) 上面一堆函数的通用版,可以用来返回年,月,日,时,分,秒或其他组合
  • sec_to_time(sec) 秒转时间
  • date_add(date,expr type) adddate(date,expr type) 日期加法运算
  • date_sub(date,expr type) subdate(date,expr type) 日期减法
  • addtime(time,expr) 时间计算
  • subtime(time,expr) 时间减法
  • datediff(date1,date2) 计算时间差date1-date2

格式化时间

控制流函数

  • if (expr,v1,v2) 三目运算 expr?v1:v2
  • case
case 
    when expr1 then v1 
    when expr2 then v2 
    when expr3 then v3 
    when expr4 then v4 
end;
  • ifnull(v1,v2)

系统信息函数

  • version() mysql版本号
  • connection_id() 当前用户的连接id
  • processlist show processlist 正在运行的线程
  • datebase() schema() 显示当前的数据库
  • user() 当前登录的用户名
  • charset() 返回字符集
  • collations(str) 字符串排序方式
  • last_insert_id() 一次插入多条数据时,返回的是最后一次插入的第一条的id

加密函数

  • password(str) 不应用在个人应用中,单向加密
  • md5(str) 可逆,公开算法
  • encode(str,pswd_str) 加密后长度跟原始长度一直
  • decode(str,pswd_str) 解密

其他函数

  • format(x,n) 格式化小数位
  • conv(n,from_base,to_base) 数字进制转换
  • inet_aton(expr) ip地址转整数
  • inet_ntoa(expr) 整数转ip
  • get_lock(str,timeout) 创建锁 成功1 超时0 错误返回null
  • release_lock(str) 释放锁
  • is_used_lock(str) is_free_lock(str)检查锁,返回创建锁的connection_id 否则null
  • benchmark(count,expr) 多次执行表达式,并返回运算时间
  • convert() 改变字符串默认字符集
  • cast(x,as type) convert(x,type) 转换数据类型

 

posted on   刘子煜  阅读(51)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
 
点击右上角即可分享
微信分享提示