• 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

    总结

     

     

  • 相关阅读:
    初识Java 15-1 文件
    Modelsim无法生成LICENSE的问题
    什么是浏览器指纹?指纹浏览器如何避免浏览器指纹的追踪识别?
    Android中可变帧率VRR
    Linux安装MongoDB超详细
    java计算机毕业设计ssm气象百事通系统-天气预报系统
    6.Jenkins-代码更新Jenkins自动发布项目
    vue2进阶学习知识汇总
    C++核心编程(三十三)容器(list)
    list集合自定义排序
  • 原文地址:https://blog.csdn.net/qq_33753147/article/details/126710915