日期函数
函数名称 | 描述 |
current_date() | 当前日期 |
current_time() | 当前时间 |
current_timestamp() | 当前时间戳 |
date(datetime) | 返回datetime的日期部分 |
date_add(date, interval d_value_type) | 在date后面添加日期或时间 interval 后面的单位可以是 year,minute,second,day |
date_sub(date,interval d_value_type) | 同date_add,只不过是相减 |
datediff(date1,date2) | 两个日期的差,单位是天 |
now() | 当前日期时间 |
在mysql中有一系列可以获取日期的函数,这些函数都是通过select调用,使用方式和c++的函数一样,可以函数之间互相嵌套,不过需要注意类型。
使用date_add 和 date_sub 需要注意添加 interval 关键字
测试案例
我们创建一个表,其变量是 id,sendtime 和 content。
然后插入两个评论。
等过了两分钟后,再插入一条评论。
然后再通过 select sendtime content from msg where sendtime > date_addsub(now(),interval 10 minute);来筛选十分钟之前插入的数据。
发现找到了十分钟前插入的数据。
字符串函数
名称 | 说明 |
charset(str) | 返回字符串字符集 |
concat(string [...) | 连接字符串 |
instr(string,substring) | 返回substring在string中的位置 |
ucase(string2) | 切换成大写 |
lcase(string2) | 切换成小写 |
lefr(sring, length) | 从string左边选length个字符 |
length(string) | string的长度 |
replace(str,search_str,replace_str) | 将str中的search_str用replace_str替换 |
strcmp(string1,string2) | 比较两个字符串的大小 |
substring(str,pos,length) | 从str的pos开始,取length个字符 |
ltrim(str) rtrim(str) trim(str) | 去除前空格,去除后空格,去除所有空格 |
通过上述函数可以将数据组合成一串字符来输出。
又或者将某一个字符修改。
当然,和日期函数类似,字符串函数也能嵌套使用。
不过有一点需要注意的是,length(str) 这个函数返回的是字符串的字节个数,如果是中文的话,根据字符集不同,返回长度不同。
比如我这里是utf8的字符集,一个中文占3字节。
输出的就是3的倍数。
数学函数
函数名 | 描述 |
abs(num) | 绝对值函数 |
bin(decimal_num) | 十进制转二进制 |
hex(decimal_num) | 转换成十六进制 |
conv(num,from_base,to_base) | 进制转换 |
ceiling(num) | 向上取整 |
floor(num) | 向下取整 |
format(num,decimal_num) | 格式化,保留小数位数 |
rand() | 返回随机浮点数,范围[0.0,1.0) |
mod(num,denominator) | 取模,求余 |
数学函数相比于前面的函数就没什么需要详细说的,都很简单。
向上取整就是四舍五入,向下取整是直接舍弃小数点
其他函数
函数名 | 描述 |
user() | 查询当前用户 |
md5(str) | 对一个字符串进行摘要,得到一个32位字符串 |
database() | 显示正在使用的数据库 |
password(str) | mysql通过该函数对用户加密 |
ifnull(val1,val2) | 如果val1为null,返回val2,否则返回val1 |
user函数就是直接显示当前的用户
md5就是通过对一个字符串进行一个摘要,固定得到一个32位字符串
database则返回当前使用的数据库
而password这个函数一般是mysql进行加密的,使用过这个函数的语句无法通过 ↑ 和 ↓ 键来重新获得指令,而且这个函数一般用不了。
ifnull就是就看1是不是null,是就返回第二个数据,否则返回第一个数据。
总结
mysql 的函数都很简单,不过使用率很高,本文总结了四大类型的函数,也展示和说明了它们的用法,希望对大家有所帮助。