计算字段Concat()函数
Concat(),拼接串,即把多个串连接起来形成一个较长的串。需要一个或多个指定的串,各个串之间用逗号分隔。
select CONCAT(s_name,'[',s_sex,']') as newstr from student order by s_name;
image.png
去除空格Trim()函数
Trim函数,去掉串左右两边的空格
select CONCAT(trim(s.coursesname),'[',s.coursesid,']') as newcol from courses s order by s.coursesname;
image.png
RTrim函数,去掉串右边的空格
select CONCAT(rtrim(s.coursesname),'[',s.coursesid,']') as newcol from courses s order by s.coursesname;
image.png
LTrim函数,去掉串左边的空格
select CONCAT(ltrim(s.coursesname),'[',s.coursesid,']') as newcol from courses s order by s.coursesname;
image.png
文本处理函数
Upper()函数 将串转换为大写
select Upper(CONCAT(trim(s.coursesname),'[',s.coursesid,']')) as newcol from courses s;
image.png
left(str,len) str字符串,len截取长度,返回串左边的字符
select left((trim(s.coursesname)),5) as newcol from courses s;
image.png
select left(Upper(CONCAT(trim(s.coursesname),'[',s.coursesid,']')),5) as newcol from courses s;
image.png
日期和时间处理函数
获取 当前日期时间
在MySQL里也存在和Oracle里类似的dual虚拟表,MySQL可以忽略对该表的引用。
select NOW(); --2020-06-16 14:25:31
SELECT NOW() FROM DUAL; --2020-06-16 14:25:31
以下日期时间函数,都等同于 now()。
SELECT CURRENT_TIMESTAMP();
SELECT CURRENT_TIMESTAMP;
SELECT LOCALTIME();
SELECT LOCALTIME;
SELECT LOCALTIMESTAMP();
SELECT LOCALTIMESTAMP;
SELECT SYSDATE();
sysdate() 日期时间函数与 now() 类似, 不同之处在于:now() 在执行开始时值就得到了;sysdate() 在函数执行时动态得到值。
测试如下:
SELECT NOW(), SLEEP(3), NOW();
image.png
SELECT SYSDATE(), SLEEP(3), SYSDATE();
image.png
获取 当前日期
SELECT CURDATE();-- 当前日期:2020-06-16
SELECT CURRENT_DATE();-- 当前日期:等同于 CURDATE()
SELECT CURRENT_DATE;-- 当前日期:等同于 CURDATE()
获取 当前时间
SELECT CURTIME(); -- 当前时间:14:34:52
SELECT CURRENT_TIME();-- 当前时间:等同于 CURTIME()
SELECT CURRENT_TIME;-- 当前时间:等同于 CURTIME()
日期时间格式化
select s.s_name,DATE_FORMAT(s.s_birthday,'%Y年%m月%d日 %H时%i分%s秒') from student s ;
image.png
select s.s_name,DATE_FORMAT(s.s_birthday,'%Y年%m月%d日') from student s ;
image.png
select s.s_name,DATE_FORMAT(s.s_birthday,'%Y/%m/%d %H:%i:%s') from student s ;
image.png
更多日期函数请参考文章
https://www.cnblogs.com/wangmp/archive/2019/04/24/10760990.html
数值处理函数
下边列举一些数学上常用到的函数
image.png
round():四舍五入函数
round(数值,参数):如果参数的值为正数,表示保留几位小数,如果参数的值为0,则只保留正数部分们如果参数的值为负数,表示对小数点前第几位进行四舍五入。
select round(45.926,2) from dual; --45.93
ceil(数值):向上取整
select ceil(10.99) from dual; --11
select ceil(10.11) from dual; -11
floor(数值):向下取整
select floor(10.11) from dual;--10
mod(参数1,参数2):求出余数
select mod(10,4)from dual; --2
sqrt(数值):求出平方根
select sqrt(9)from dual; --3
power(底数,指数):返回某数的乘幂
select power(10, 2) from dual --100
RAND 生成一个0~1之间的随机数,传入整数参数来产生重复序列
sELECT RAND(1),RAND(),RAND(1);
image.png
网友评论