• mysql函数


    高级查询参看:

    http://www.w3school.com.cn/sql/
    http://www.cnblogs.com/kissdodog/p/4168721.html

    -- ------------------ 字符串函数 -------------------
    -- 大写转换 ucase(),upper()
    SELECT UCASE(ename) FROM emp;
    SELECT UPPER(ename) FROM emp;

    -- 小写转换 lcase(),lower
    SELECT LCASE(ename) FROM emp;
    SELECT LOWER(ename) FROM emp;
    -- 字符串拼接 concat()
    SELECT CONCAT(ename,'.com') '域名' FROM emp;

    -- MySQL 字符串截取函数:left(), right(), substring(), substring_index()。
    -- 还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,
    -- 截取 substr -- http://www.cnblogs.com/zdz8207/p/3765073.html
    SELECT SUBSTR(ename,1,1) FROM emp;
    SELECT SUBSTRING(ename,2) FROM emp;

    -- 以首字母大写的方式显示所有员工姓名
    SELECT CONCAT(UPPER(SUBSTR(ename,1,1)),LOWER(SUBSTR(ename,2))) AS '员工姓名' FROM emp;
    -- 以首字母小写的方式,其他字母大写的方式显示员工信息
    SELECT CONCAT(LCASE(SUBSTR(ename,1,1)),UCASE(SUBSTR(ename,2))) AS '员工姓名' FROM emp;

    -- ---------------------- 数学函数 ------------------------------
    -- round() 函数用于把数值字段四舍五入为指定的小数位数。
    SELECT ROUND(19.3445,2); -- 19.34
    SELECT ROUND(19.3495,2); -- 19.35

    -- mod() 函数用于求模值
    SELECT MOD(2,3); -- 2%3 = 2

    -- SQRT(x) 返回x的平方根  
    SELECT SQRT(25); -- 5

    -- ceil() 向上取整
    SELECT CEIL(2.3); -- 3

    -- FLOOR(x) 向下取整
    SELECT FLOOR(2.9) -- 2

    -- ABS(x)返回x的绝对值  
    SELECT ABS(-1) -- 返回1

    -- RAND()返回0->1的随机数  
    SELECT RAND(); -- 0.93099315644334

    -- RAND(x)返回0->1的随机数,x值相同时返回的随机数相同  

    SELECT RAND(2); -- 1.5865798029924

    -- 显示在一个月30天的情况下所有员工的日薪
    SELECT ename,sal ,hiredate FROM emp WHERE DAY(LAST_DAY(hiredate) )= '30'
    -- select hiredate,day(Last_day(hiredate)) from emp

    -- ---------------------- 时间函数 -----------------------
    -- CURDATE(),CURRENT_DATE() 返回当前日期
    SELECT CURDATE(); -- 2017-09-28
    SELECT CURRENT_DATE();

    -- NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP()
    -- 返回当前日期和时间
    SELECT NOW(); -- 2017-09-28 18:58:50
    SELECT SYSDATE();
    -- YEAR() 返回年
    SELECT YEAR(NOW()); -- 2017
    -- MONTH() 返回月
    SELECT MONTH(NOW()); -- 9

    -- DAY() 返回日
    SELECT DAY(NOW()) -- 28
    -- DATEDIFF() 返回两个日期之间的天数
    SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate -- 1

    -- ADDDATE(d,n) 计算其实日期d加上n天的日期
    SELECT ADDDATE(NOW(),1); -- 2017-09-29 19:13:47 今天是 2017-09-28 19:13:47

    -- LAST_DAY() 获得本月的最后一天
    SELECT LAST_DAY(NOW()); -- 2017-09-30

    -- WEEKDAY()当周第几天
    SELECT WEEKDAY(NOW()) -- 3 今天天周四,第一天为 0

    -- DAYOFMONTH()当月 第几天
    SELECT DAYOFMONTH(NOW()); -- 28


    -- SUBDATE(d,INTERVAL expr type)日期d减去一个时间段后的日期
    SELECT SUBDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE) -- 2011-11-11 11:06:11 (TYPE的取值与上面那个列出来的函数类似)

    -- 时间格式化 -- http://www.w3school.com.cn/sql/func_date_format.asp
    SELECT DATE_FORMAT(NOW(),'%Y 年 %m月 %d日 %H时 %i分 %s秒');

    -- ADDDATE(d,INTERVAL expr type 计算起始日期d加上一个时间段后的日期
    SELECT ADDDATE('2011-11-11 11:11:11',1) -- 2011-11-12 11:11:11 (默认是天)
    SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE); -- 加五分钟

    -- 返回入职8个月的员工信息
    SELECT * FROM emp WHERE ADDDATE(hiredate, INTERVAL 8 MONTH) = NOW();
    -- 找出各月倒数第三天受雇的所有员工
    SELECT ename,hiredate FROM emp WHERE DAY(hiredate) = DAY(LAST_DAY(hiredate) - 2);
    -- 显示员工入职天数
    SELECT ename,DATEDIFF(NOW(),hiredate) '入职天数' FROM emp;

    -- 显示服务满10年的员工姓名和雇佣天数
    SELECT ename,DATEDIFF(NOW(),hiredate) '雇佣天数' FROM emp WHERE NOW() > ADDDATE(hiredate,INTERVAL 10 YEAR);
    -- 得到当周/当月/当年第一天,最后一天
    SELECT SUBDATE(NOW(),INTERVAL WEEKDAY(NOW()) DAY) -- 当周第一天
    SELECT SUBDATE(NOW(),INTERVAL DAYOFMONTH(NOW())-1 DAY) -- 当月第一天
    SELECT SUBDATE(NOW(),INTERVAL DAYOFYEAR(NOW()) -1 DAY) -- 当年第一天
    SELECT ADDDATE(NOW(),INTERVAL 6-WEEKDAY(NOW()) DAY); -- 当周最后一天
    SELECT LAST_DAY(NOW());-- 当月最后一天
    SELECT ADDDATE(SUBDATE(NOW(),INTERVAL DAYOFYEAR(NOW()) DAY),INTERVAL 1 YEAR ) '当年最后一天'-- 当年最后一天

    -- ----------------------转换函数-----------------------------------------------
    -- TO_DAYS(d) 计算日期d距离0000年1月1日的天数
    SELECT TO_DAYS(NOW());

    -- STR_TO_DATE(d,'format'); 字符串转时间
    SELECT STR_TO_DATE(hiredate,'%Y-%m-%d %H:%i:%s') FROM emp;

    -- 显示1980年入职的员工

    SELECT * FROM emp WHERE YEAR(hiredate) = 1980;
    -- 显示所有12月份入职的员工
    SELECT * FROM emp WHERE MONTH(hiredate) = 12;
    -- ----------------------------- 加密-------------------------------

    SELECT MD5(deptno) FROM emp;

  • 相关阅读:
    Educational Codeforces Round 97 (Rated for Div. 2)
    2020 计蒜之道 线上决赛
    kuangbin 莫队专题
    Codeforces Round #677 (Div. 3)
    Codeforces Round #674 (Div. 3)
    Elasticsearch Alias:别名
    Elasticsearch 集群重要配置的修改
    Elasticsearch文档版本冲突原理与解决
    redis操作详情
    对密码必须包含字母,数字,特殊字符正则表达式理解
  • 原文地址:https://www.cnblogs.com/getchen/p/7642579.html
Copyright © 2020-2023  润新知