mysql中函数汇总_mysql各类函数汇总整理全集

1. 数学函数

Mysql数学函数

函数

作用

abs(x)

绝对值

abs(-0.5)=0.5

ceil(x),ceiling(x)

大于或等于x的最小整   数

ceil(0.5)=1,ceiling(-0.5)=0

floor(x)

小于或等于x的最大整数

floor(0.5)=0,floor(-0.5)=-1

rand()

0-1的随机数

rand(x)

0-1的随机数,x值相同时返回的随机数相同

sign(x)

x的符号(-1,0,1)

sign(-0.5)=- 1,sign(0)=0,sign(0.5)=1

pi()

圆周率(3.141593)

pi()=3.141593

truncate(x,y)

x保留到小数点后y位的值

truncate(2.55,1)=2.5

round(x)

离x最近的整数

round(2.5)=3,round(2.2)=2

round(x,y)

x小数点后y位的值,(四舍五入后)

round(2.55,1)=2.6

pow(x,y),power(x,y)

x的y次方

power(3,2)=pow(3,2)=9

sqrt(x)

x的平方根

sqrt(16)=4

exp(x)

e的x次方

exp(2)=7.38905609893065

mod(x,y)

x除以y以后的余数

mod(5,2)=1

log(x)

自然对数(以e为底)

log(7.38905609893065)=2

log10(x)

以10为底的对数

log10(100)=2

radians(x)

角度转换为弧度

radians(180)=3.141592653589793

degrees(x)

弧度转换为角度

degrees(pi())=180

sin(x)

正弦值

sin(pi()/2)=1

asin(x)

反正弦值

asin(1)=1.5707963267948966

cos(x)

余弦值

cos(0)=1

acos(x)

反余弦值

acos(1)=0

tan(x)

正切值

tan(pi()/4)=0.9999999999999999

atan(x),atan2(x,y)

反正切值

atan(1)=atan2(1)=0.7853981633974483

cot(x)

余切值

cot(1)=0.6420926159343306

2.字符串函数

合并字符串函数 concat_ws(x,s1,s2,…)

!! 各字符串用参数 x 隔开

0faeab6f51def9eed3bd72d9e216ad09.png

填充字符串函数 lpad(s1,len,s2) , rpad(s1,len,s2)

!! lpad(s1,len,s2)函数把字符串 s2 填充到 s1 的开始处,使字符串长度达到 len;

!! rpad(s1,len,s2)函数把字符串 s2 填充到 s1 的结尾处,使字符串长度达到 len;

d6cdc11dc8d6a451e4c9af428fe5f45c.png

3.日期和时间函数

3.1获取当前日期:curdate(),current_date()

获取当前时间:curtime(),current_time()

获取当前日期和时间:now(),current_timestamp(),localtime(),sysdate(),localtimestamp()

3.2unix时间戳函数

以unix时间戳形式返回当前时间:unix_timestamp()

将时间 d 以unix时间戳形式返回:unix_timestamp(d)

把unix时间戳的时间转换为普通格式的时间:from_unixtime(d)

de6b982529d0bcbf074527fdc6516dc9.png

3.3返回utc日期:utc_date()

返回utc时间:utc_time()                     !! utc:Universal Coordinated Time,国际协调时间

d62c99e58460eae5e8b4f0e325c2a5f7.png

3.4获取月份:month(d),monthname(d)

ef710954e3183e5ac4832eccafa943bf.png

3.5获取星期:dayname(d) :Monday,…

dayofweek(d) :1(周日),…

weekday(d) :0(周一),…

3.6获取星期数:week(d),weekofyear(d)          :d是本年第几周

3.7获取天数:dayofyear(d) :本年第几天

dayofmonth(d) :本月第几天

3.8返回日期d中年份值:year(d)

返回日期d是本年第几季度:quarter(d)

返回时间t中小时值:hour(t)

返回时间t中分钟值:minute(t)

返回时间t中秒钟值:second(t)

181ac21388218c074e518de1c8a2ad80.png

3.9返回日期的指定值:extract(type from d)

type:: year :年份

month:月份

day:几号

hour:小时

minute:分钟

second:秒

3.10时间和秒钟转换

time_to_sec(t)

sec_to_time(s)

979a55637bb6f0d60dd98bc47339ad97.png

3.11计算日期和时间

(1) to_days(d) :日期d与0000年1月1日的天数

from_days(n):从0000年1月1日开始 n 天后日期

datediff(d1,d2):日期d1和d2之间相隔的天数

(2) adddate(d,n) :起始日期 d 加上 n 天的日期

subdate(d,n) :起始日期 d 减去 n 天的日期

addtime(t,n) :起始时间 t 加上 n 秒的时间

subtime(t,n) :起始时间 t 减去 n 秒的时间

(3)  adddate(d,interval expr type),date_add(d,interval expr type):起始日期d加上一个时间段后日期

subdate(d,interval expr type) :起始日期d减去一个时间段后日期

MYsql日期间隔类型

type

含义

expr形式(时间段长度)

year

yy

month

mm

day

dd

hour

hh

minute

mm

second

ss

year_month

年-月

yy与mm间用任意符号隔开

day_hour

日-时

dd与hh间用任意符号隔开

day_minute

日-分

dd与mm间用任意符号隔开

day_second

日-秒

dd与ss间用任意符号隔开

hour_minute

时-分

hh与mm间用任意符号隔开

hour_second

时-秒

hh与ss间用任意符号隔开

minute_second

分-秒

mm与ss间用任意符号隔开

cde4c3b7548782e52805e35183ed9055.png

3.12将日期和时间格式化

date_format(d,f):按f格式要求显示日期d

time_format(t,f):按f格式要求显示时间t

get_format(type,s):根据字符串s获取type类型数据的显示格式

!! date_format(d,get_format(type,s))

4.条件判断函数

4.1 if(expr,v1,v2) :expr成立,返回v1,否则返回v2

例:select grade,if(grade>=60,'pass','fail') from student

4.2 ifnull(v1,v2) :若v1不为空,显示v1值,否则显示v2值

 例:select grade,ifnull(grade,‘no grade') from student

4.3 case函数

4.3.1 case when expr1 then v1

[when expr2 then v2 …]

[else vn]

end 字段

4.3.2 case expr

when e1 then v1

[when e2 then v2 …]

[else vn]

end 字段

5.系统信息函数

MYsql系统信息函数

函数

作用

version()

数据库版本号

connection_id()

服务器连接数

datebase(),schema()

当前数据库名

user(),system_user(),session_user()

当前用户

current_user(),current_user

当前用户

charset(str)

字符串str的字符集

collation(str)

字符串str的字符排列方式

last_insert_id()

最近生成的auto_increment值

6.加密函数

6.1 password(str) :主要用来给用户的密码加密,此加密不可逆。

!! 不能将未加密的密码直接存储到Mysql的user表中

6.2 md5(str) :主要用于对普通的数据加密

6.3 encode(str,pswd_str) :使用字符串pswd_str来加密字符串str.加密的结果是一个二进制数,必须使用blob类型的                                           字段来保存

6.4 decode(crypt_str,pswd_str) :使用字符串pswd_str来为crypt_str解密。

例:

4d151d17495516455aa70de8ce3e36ca.png

7.其他函数

7.1 format(x,n) :将数字x进行格式化,将x保留到小数点后n位(四舍五入)<=>round(x,y)

7.2 ascII(s) :返回字符串s的第一个字符的ASCII码

bin(x) :返回x的二进制编码

hex(x) :x的十六进制编码

oct(x) :x的八进制编码

conv(x,f1,f2) :将x从f1进制数变成f2进制数

7.3 inet_aton(ip) :将ip地址转换为数字表示

inet_ntoa(n) :将数字n转换成ip形式

7.4 get_lock(name,time) :定义一个名称为nam、持续时间长度为time秒的锁

release_lock(name) :解除名称为name的锁

is_free_lock(name) :是否使用名称为name的锁

7.5 benchmark(count,expr) :将表达式expr重复执行count次,然后返回执行时间

7.6 convert(s using cs) :将字符串s的字符集变成cs

7.7 cast(x as type)和convert(x,type) :将x变成type类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值