• SQL - 函数


    字符串函数

    1. #contact
    2. select concat('Hello', ' mysql');
    3. #lower
    4. select lower('Hello');
    5. #upper
    6. select upper('Hello');
    7. #lpad 左填充到总长度多少位
    8. select lpad('s',5,'--');
    9. #rpad 右填充到总长度多少位
    10. select rpad('s',5,'--');
    11. #trim 去除两端空格
    12. select trim(' Hello world ');
    13. #subString 截取字符串, 下标是从1开始的
    14. select substring('hello',1);

     数值函数

    1. -- ceil 向上取整, 结果为2
    2. select ceil(1.1);
    3. -- floor 向下取整, 结果为2
    4. select floor(2.9);
    5. -- mod 取模,结果为2
    6. select mod(2,3);
    7. select mod(5,3);
    8. -- rand随机数,1以内的随机数
    9. select rand();
    10. -- round四舍五入,保留几位小数,结果为3.34
    11. select round(3.335,2);
    12. -- 生成6位的随机数
    13. select lpad(round(rand() * 1000000 ,0), 6 ,'0');

    日期函数

     

    1. -- 当前日期
    2. select curdate();
    3. -- 当前时间
    4. select curtime();
    5. -- 当前日期+时间
    6. select now();
    7. -- 获取date年
    8. select year(now());
    9. -- 获取date月
    10. select month(now());
    11. -- 获取date日
    12. select day(now());
    13. -- 指定date + 一个时间间隔
    14. -- 往后推70秒
    15. select date_add(now(), interval 70 second );
    16. -- 往后推70分钟
    17. select date_add(now(), interval 70 minute );
    18. -- 往后推70天
    19. select date_add(now(), interval 70 day);
    20. -- 往后推70月
    21. select date_add(now(), interval 70 month);
    22. -- 往后推70年
    23. select date_add(now(), interval 70 year);
    24. -- 2个date之间相差的天数
    25. -- 第一个参数在第二参数之前,会出现负数,结果为-31
    26. select datediff('2022-01-01','2022-02-01');
    27. -- 第一个参数在第二参数之后,正数,结果为31
    28. select datediff('2022-02-01','2022-01-01');

    select name, datediff(curdate(),entrydate) entrydays from emp order by entrydays desc;

     流程函数

     

    1. -- if
    2. select if(true, 'ok', 'error');
    3. select if(false, 'ok', 'error');
    4. -- ifnull
    5. select ifnull('ok', 'default');
    6. -- 为空字符串时,也不是null,依然返回空字符串
    7. select ifnull('', 'default');
    8. select ifnull(null, 'default');
    9. -- case when then else end
    10. -- 需求:查询员工姓名和工作地址(北京/上海 ---> 一线城市, 其他 --->二线城市)
    11. select name,
    12. (case workaddress
    13. when '北京' then '一线城市'
    14. when '上海' then '一线城市'
    15. else '二线城市' end) as '工作地址'
    16. from emp;

     

    1. select name,
    2. case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end as mathscore,
    3. case when english >= 85 then '优秀' when english >= 60 then '及格' else '不及格' end as englishscore,
    4. case when chinese >= 85 then '优秀' when chinese >= 60 then '及格' else '不及格' end as chinesescore
    5. from score

    总结

     

     

  • 相关阅读:
    【Webpack5】Webpack学习笔记(一)
    Istio实践(4)- 故障注入、熔断及ServiceEntry
    浅析GC-垃圾回收
    鹰潭实验室建设细节说明
    react悬浮球效果展示
    专利申请流程详解
    AI认知与科普(通识)
    C#、C++、Java、Python 选择哪个好?
    Spring Boot 中单元测试框架 Mockito 的正确使用
    财务会计与管理会计(二)
  • 原文地址:https://blog.csdn.net/qq_33753147/article/details/126710915