mysql 数学函数
获取随机数rand(),rand(x)
四舍五入round(x),round(x,y)
y保留小数点y位,为负数时向左y位
truncate(x,y)直接截取
符号函数sign(x) x正为1,负数为-1 0为0
pow(x,y) x的y次方
exp(x) e的x次方
log(x) e对x的对数
log10(x) 10对x的对数
radians(x) 角度转弧度
degrees(x) 弧度转角度
sin(x)
asin(x)
...
char_length(string) 字符串长度 中文一个字符为3位
length(string)
concat(string1,string2) 连接字符串
insert(s1,x,len,s2)返回字符串s1,s1中起始于x位置长度为len的子字符串将被s2字符串替换
lower(str),lcase(str) 转换为小写
upper(str),ucase(str) 转换成大写
获取left(str,len) 返回从左边起的len个字符,right(str,len)返回右边的类似
lpad(s1,len,s2)返回长度为len的字符串,s1小于len用s2补充
rpad(s1,len,s2)类似于lpad
ltrim(s)
rtrim(s)
trim(s)处理空格
trim(s1 from s) 从s两端删除s1,注意只有两端
repeat(s,n)返回n个s连接的字符串
space(n) 返回n个空格的字符串
replace(str,ss1,ss2)吧str中的ss1替换为ss2
strcmp(s1,s2) 相减,结果为正数返回1,负数返回-1,相等返回0
mid(s,n,len),substring(s,n,len)从s返回长度为len的子串,起始位置n
locate(str1,str),position(str1 in str),instr(str,str1) 返回str1在str的位置
reverse(str) 翻转str
elt(n,str1,str2,str3.....)返回第n个字符串或者null
field(s,str1,str2,str3)返回第一个str[i]==s的位置,如在str2==s,返回2
find_in_set(s1,s2)s2是字符串列表以‘,’分开,返回s1在字符串s2的位置
make_set(x,s1,s2...)返回x代表的二进制数对应位置的x[i]*s1+x[i+1]*s2+x[i+2]*s3
x[i]=0或1
curdate(),current_date() 返回当前日期
curtime(),current_time()返回时间
current_timestamp(),localtime(),now(),sysdate() 返回日期时间
unix_timestamp(date) 1970-1-1到date的秒数,没有date到当前
from_unixtime(date)为unix_timestamp(date)互为反函数
utc_date()返回utc日期
utc_time()返回utc时间
month(date)返回1-12
monthname(date) 返回january-december
dayname(d) sunday-saturday
dayofweek(d)返回d对应一周的索引 1-周日 2-周一。。。。
weekday(d) 0-周一,1-周二。。。
week(d)计算日期d是一年中的第几周
weekofyear(d) 计算某天位与一年中的第几周1-53
year(date)返回年份
quarter(date)返回季节
hour(time)返回小时
minute(time)返回分钟
second(time)返回秒
extract(type from date)从date提取日期时间等内容 type可以为year,month,year_month等
time_to_sec(time) h*3600+m*60+s
sec_to_time(seconds)和time_to_sec互为反函数
date_add(date,interval expr type),adddate(date,interval expr type)
example:DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND) 返回
2011-1-1 0:0:0
DATE_ADD('2010-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND)
2011-1-1 0:1:0
date_sub.....
addtime(date,expr)
subtime.....
date_diff(date1,date2)求差 返回date1-date2
date_format(date,format)
format: %w %m %y....
TIME_FORMAT(time,format)
GET_FORMAT(date,format_type)
if(expr,v1,v2) expr==true 返回v1否则返回v2
ifnull(v1,v2)如果v1不为空返回v1否则返回v2
case expr when v1 then r1 [when v2 then r2] [else rn] end
version()版本号
connection_id()当前登录连接数
DATABASE(),SCHEMA();数据库名
USER(), CURRENT_USER(), SYSTEM_USER();用户
charset(str) str字符串字符集
collation()字符排列顺序
last_insert_id();最后一条记录的ID字段的值(这个值是insert的第一个插入值的ID,insert可以一次插入多条记录),
password(str)加密密码返回加密后的字符串
md5(str) 求出str的MD5(128位)
encode(str,pswd_str);用pswd_str对str进行加密
decode(str,pswd_str)与encode相反
format(x,n)将数字x格式化
conv(N,from_base,to_base)转换进制
inet_aton(expr) IP -> int
inet_ntoa(expr) int->IP
get_lock(str,timeout) 对名为str的锁加锁
release_lock(str)解锁
is_free_lock(str)判断
is_used_lock(str)判断有没有这个锁
benchmark(n,expr) 进行n次expr
convert(str Using type) 在不同字符集转换用type转换str
cast(x, AS type)数据类型转换
type: BINARY ,CHAR(N) ,DATE,TIME,DATETIME,DECIMAL,SIGNED,UNSIGNED