一、 日期和时间函数
函数的概念:按指定格式输入参数,返回正确结果的运算单元
1. 返回当前日期:curdate()
current_date()
current_date()+0可以将当前日期转换为数值型
例: select curdate(), current_date(), curdate()+0
2015-09-22 2015-09-22 20150922
2. 返回当前时间:curtime()
current_time()
current_time()+0
例:select curtime(),current_time(),curtime()+0
20:47:53 20:47:53 204753
3. 返回当前日期和时间:current_timestamp()
localtime()
now()
sysdate()
例: select now() as \'此时此刻\',sysdate() as \'此时此刻2\'
4. 获取月份: month(date)
monthname(date)
例:select month(\'2015-07-22\') ----> 7
select monthname(\'2015-07-22\') ---->July
5. 获取星期:dayname(date)
dayofweek(date)
weekday(date)
week(date)
weekofyear(date)
例:select dayname(\'2015-09-23\') --->Wednesday
select dayofweek(\'2015-09-23\') --->3(以星期天作为第一天)
select weekday(\'2015-09-23\') --->1(以星期一为第0天)
select week(\'2015-01-01\') --->0(在一年中属于哪个星期)
select weekofyear(\'2015-01-01\') --->1(在一年中属于哪个星期)
6. 获取天数:dayofyear(date) ---->计算参数所指定的日期在这一年中是属于第几天
dayofmonth(date)---->计算参数所指定的日期在这一月中是属于第几天
例:select week(\'2015-01-01\') -->1
select week(\'2015-01-01\') --->1
7.获取年份,季度,小时,分钟,秒钟
year(date) select year(\'2015-01-01\') -->2015
quarter(date) select quarter(\'2015-09-22\') --->3
hour(time)
minute(time)
second(time)
二 、数学函数
1. 绝对值函数 ->ABS(X)
例:select ABS(-8) -->8
2. 符号函数sign(x):判断一个数字是正数还是负数还是零?(正数返回值为1,负数返回值为-1,零返回值是0)
例:select sign(-8) -->-1
3. 获取随机数的函数:rand() 例:select rand() --> (每次运行将产生一个新的随机数)
rand(x) 例:select rand(3) --> 产生的随机数为固定的数
4. 获取整数的函数:ceil(x) ceilung(x) 例:select ceil(3.5) -->4 (取不小于3.5的最小整数)
floor(x) 例:select floor(3.5) -->3(取小于3.5的最大整数)
5.四舍五入函数:round(x) 例:select round(3.5) ---> 4
round(x,y) 例:select floor(3.14,1) --->3.1(保留小数位数1)
例:select floor(3.14,-1) --->0 (保留到十位数)
truncate(x,y) 例:select truncate(3.15,1) --->3.1(只保留一位小数,不进行四舍五入直接截去)
6. 求余数函数:mod(x,y) 例:select mod(31,8) --->7
7. 幂运算函数:pow(x,y)/power(x,y) 求x的y次幂 例:select pow(2,3) --->8
exp(x) 求自然对数的幂
sqrt(x) 求某一个数的平方根 例:select sqrt(2) ----1.41421356237
select sqrt(9) ---- 3
8.角度弧度互换函数:radians(x) 将角度互换成弧度 例:select radians(180) --->3.1415926...
degrees(x) 将弧度变换成角度 例:select degrees(3.14) --->179.9.8...
9. 圆周率函数:PI()
10. 三角函数:sin(x) 正弦
asin(x) 反正弦
cos(x) 余弦
acos(x) 反余弦
tan(x) 正切
atan(x) 反正切
cot(x) 余切
三 、字符串函数
1.计算字符数和字符串长度的函数
char_length(s):计算字符串中有几个字符
例: select char_length(\'abc\') --->3
例: select char_length(\'你好吗\') --->3
length(s):计算字符串在内存中占几个字节
例: select length(\'abc\') --->3
例: select length(\'你好吗\') --->9
2.合并字符串函数: concat(s1,s2...) 把参数中的字符串连接成一个新的字符串 例:select concat(\'你好吗\',\'abc\',\'word\') --->你好吗abcword
concat_ws(x,s1,s2...) 例:select concat_ws(\'#\',\'你好吗\',\'abc\',\'word\')---->你好吗#abc#word
3.替换字符串函数:INSERT(S1,X,LEN,S2) 在S1这个字符串当中以X位置开头数len这样长度的字符串给它替换成S2
例:select insert(\'ABCDEF\',\'2\',\'3\',\'##\') --->A##EF
REPLACE(S,S1,S2) 把原始的字符串中的某个子字符串用另一个字符串代替
例:select insert(\'ABCDEFAB\',\'ab\',\'%\') --->%CDEF%
4.截取字符串的函数:left(s,n) 例:select left(\'ABCDEFAB\',\'3\') --->ABC
right(s,n) 例:select right(\'ABCDEFAB\',\'3\') --->FAB
5.重复生产字符串函数:repeat(s,n) 例: select repeat(\'ABC\',\'3\') --->ABCABCABC
6.大小写转换的函数:lower(x,y)/lcase(x) 例:select lcase(\'ABC\')--->abc
upper(x)/ucase(x) 例:select ucase(\'abc\')--->ABC
7.填充字符串的函数:lpad(s1,len,s2) 从左边开始填充 例:select lpad(\'ABCd\',10,\'#\')---->######ABCd
rpad(s1,len,s2) 从右边开始填充 例:select rpad(\'ABCd\',10,\'#\')----->ABCd######
8.删除空格函数:LTRIM(S)/RTRIM(S) 删除左边的空格/删除右边的空格 例:select RTRIM(\' ABCd \') - -> ABCd
TRIM(S) 删除两边的空格 例:select TRIM(\' ABCd \')----->ABCd
9.删除指定字符串:Trim(s1 from s) 例:select trim(\'A\',from \'ABCADE\') --->BCADE (删除靠边的A)
10.获取子字符串:SUBSTRING(S,N,LEN) 例:select substring(\'ABCADE\',3,2)----->CA
MID(S,N,LEN) 例:select substring(\'ABCADE\',3,2)----->CA
11.返回指定位置字符串函数:ELT(N,S1,S2....) 例:select elt(2,\'ABC\',\'DEF\',\'MYSQL\') ---->DEF
12.返回指定字符串位置:FIELD(S,S1,S2...) 例:select field(\'HI\',\'HI\',\'HO\',\'HE\',\'HU\') ---->1
四 、系统函数
1. 获取MySQL版本号的函数:version() 例: select version()
2. 查看当前的用户连接数:connection_id() 例:select connection_id
3. 查看当前所用数据库函数:datebase()
schema9()
4. 获取用户名的函数:user() 例:select user(),current_user(),system_user(),session_user() ----root@localhost
current_user()
system_user()
session_user()