Mysql常用函数总结(二)

有的时候们需要了解当前的时间,这时候我们就可以调用时间函数了。下面就是一些常用的时间函数

下面来说一下DATE_FORMAT(date,format):format可以有以下格式符:举个例子吧!

mysql> SELECT DATE_FORMAT(‘2017-10-04 22:23:00‘, ‘%W %M %Y‘);
+------------------------------------------------+
| DATE_FORMAT(‘2017-10-04 22:23:00‘, ‘%W %M %Y‘) |
+------------------------------------------------+
| Sunday October 2009                            |
+------------------------------------------------+
row in set (0.00 sec)

mysql> SELECT DATE_FORMAT(now(),‘%H %k %I %r %T %S %w‘);
+-------------------------------------------+
| DATE_FORMAT(now(),‘%H %k %I %r %T %S %w‘) |
+-------------------------------------------+
| 23 23 11 11:49:57 PM 23:49:57 57 5        |
+-------------------------------------------+
row in set (0.00 sec)

再来看一下DATE_ADD(date,INTERVAL expr unit):其中INTERVAL是关键字,expr是一个表达式,unit为间隔类型,MySQL提供如下的间隔类型:

mysql> SELECT DATE_ADD(‘2000-12-31 23:59:59‘,INTERVAL 1 SECOND);
+---------------------------------------------------+
| DATE_ADD(‘2000-12-31 23:59:59‘,INTERVAL 1 SECOND) |
+---------------------------------------------------+
| 2001-01-01 00:00:00                               |
+---------------------------------------------------+
row in set (0.00 sec)

mysql> SELECT DATE_ADD(‘2100-12-31 23:59:59‘,INTERVAL ‘1:1‘ MINUTE_SECOND);
+--------------------------------------------------------------+
| DATE_ADD(‘2100-12-31 23:59:59‘,INTERVAL ‘1:1‘ MINUTE_SECOND) |
+--------------------------------------------------------------+
| 2101-01-01 00:01:00                                          |
+--------------------------------------------------------------+
row in set (0.00 sec)

流程函数也是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能够提高语句的效率。

举例:

现在有员工工资表如下:

mysql> select * from salary;
+----+---------+
| id | salary  |
+----+---------+
|  1 | 1000.00 |
|  2 | 2000.00 |
|  3 | 3000.00 |
|  4 | 4000.00 |
|  5 | 5000.00 |
|  6 | 6000.00 |
|  7 | 7000.00 |
|  8 |    NULL |
+----+---------+
rows in set (0.00 sec)

(1)当工资高于5000就显示高工资,低于5000的就显示低工资:

mysql> select id,if(salary>5000,‘高工资‘,‘低工资‘) as level from salary;
+----+-----------+
| id | level     |
+----+-----------+
|  1 | 低工资    |
|  2 | 低工资    |
|  3 | 低工资    |
|  4 | 低工资    |
|  5 | 低工资    |
|  6 | 高工资    |
|  7 | 高工资    |
|  8 | 低工资    |
+----+-----------+
rows in set (0.00 sec)

(2)当没有工资的时候,用0代替:

mysql> select ifnull(salary,0) from salary;
+------------------+
| ifnull(salary,0) |
+------------------+
|          1000.00 |
|          2000.00 |
|          3000.00 |
|          4000.00 |
|          5000.00 |
|          6000.00 |
|          7000.00 |
|             0.00 |
+------------------+
rows in set (0.00 sec)

(3)用case when来实现例子:

mysql> select id,case when salary>5000 then ‘高工资‘ else ‘低工资‘ end from salary;
+----+-------------------------------------------------------------+
| id | case when salary>5000 then ‘高工资‘ else ‘低工资‘ end       |
+----+-------------------------------------------------------------+
|  1 | 低工资                                                      |
|  2 | 低工资                                                      |
|  3 | 低工资                                                      |
|  4 | 低工资                                                      |
|  5 | 低工资                                                      |
|  6 | 高工资                                                      |
|  7 | 高工资                                                      |
|  8 | 低工资                                                      |
+----+-------------------------------------------------------------+
rows in set (0.00 sec)

(4)当工资是1000的为特低工资,工资为2000的为低工资,其余为高工资:

mysql> select id,case salary when 1000 then ‘特低工资‘ when 2000 then ‘低工资‘ else ‘高工资‘ end from salary;
+----+-------------------------------------------------------------------------------------------+
| id | case salary when 1000 then ‘特低工资‘ when 2000 then ‘低工资‘ else ‘高工资‘ end           |
+----+-------------------------------------------------------------------------------------------+
|  1 | 特低工资                                                                                  |
|  2 | 低工资                                                                                    |
|  3 | 高工资                                                                                    |
|  4 | 高工资                                                                                    |
|  5 | 高工资                                                                                    |
|  6 | 高工资                                                                                    |
|  7 | 高工资                                                                                    |
|  8 | 高工资                                                                                    |
+----+-------------------------------------------------------------------------------------------+
rows in set (0.00 sec)

其他函数

MySQL内置的函数还有很多,这里就不一一介绍了,具体的可以参考官方的文档,里面也有举了很多。

下面再来谈下平时可能用的比较少的自定义函数,自定义函数语法如下:

CREATE FUNCTION func_name([parameter1,parameter2...])
    RETURNS type
    runtime_body

下面就来创建一个函数,比如自定义一个两个整数的加法函数:

DELIMITER $
CREATE FUNCTION mysum(n1 INT,n2 INT) RETURNS INT
BEGIN
 DECLARE num int DEFAULT 0;
 SET num = n1 + n2;
 RETURN(NUM);
END $
DELIMITER ;

执行函数使用select即可:

mysql> SELECT mysum(1,2);
+------------+
| mysum(1,2) |
+------------+
|          3 |
+------------+
row in set (0.00 sec)

删除自定函数使用:

DROP FUNCTION func_name

比如删除上面创建的函数:

mysql> drop function mysum;
Query OK, 0 rows affected (0.00 sec)
时间: 2024-08-17 16:32:49

Mysql常用函数总结(二)的相关文章

mysql 常用函数以及常见查询语句

MySQL 常用函数 1.数据库中取昨天的日期 mysql> select date_sub(current_date(),interval 1 day); +-----------------------------------------+ | date_sub(current_date(),interval 1 day) | +-----------------------------------------+ | 2016-01-11                           

7 mysql常用函数

1  查看数据库版本 2  查看当前数据库 3  查看当前登录用户名 4  返回字符串的str的加密版本,41位长的字符串.此函数只用来设置系统用户的密码,不能用来对应用数据进行加密.如果应用有加密方面的需求,可以使用md5 5   MD5加密 7 mysql常用函数 原文地址:https://www.cnblogs.com/sunnybowen/p/9926495.html

MySql常用函数记录

一.MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now() mysql> select now();+-------+| now() |+-------+| 2008-08-08 22:20:46 |+-------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp()current_timestamplocaltime()localtimelocaltimestamp -

数据库之mysql篇(6)—— mysql常用函数函数/自定义函数

常用函数 运算函数 我相信你都能看懂,所以以上的不再做过多解释 然后还有个,前面漏掉的between and: 意指10是否在0到20之间,如果是返回1,否则返回0 日期函数 这个要稍微注意一下参数,第一个是起始日期,interval是固定的,2则是需要加的日期数,后面的day则是单位,还可以是week,year  信息函数 聚合函数 以上的因为我这个test数据库下的表没有很好的数据,所以操作得到的结果感觉很怪,各位见谅,你知道怎么用就可以了 加密函数 以上两种加密函数,我个人觉得都不是很安全

MySQL常用函数 大韦德先生

1.数学函数 ABS(X) 绝对值CEIL(X) 向上取整FLOOR(X) 向下取整RAND(X) 0-1的随机数ROUND(X) 距离x最近的整数ROUND(X,Y) 保留x后y位的小数,在截断时使用四舍五入POW(X,Y) y次方SQRT(X,Y) 开y次方根.2.字符函数 CHAR_LENGTH(X) 取字符长度"我是L"=>3LENGTH(X) 取字节长度"我是L"=>6CONCAT(A1,A2) 连接两个字符UPPER(X) LOWER(X)

mysql 常用函数

MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. 函数 作用 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL(1.5) -- 返回2 FLOOR(x) 返回小于或等于x的最大整数 SELECT FLOOR(1.5) -- 返回1 R

4月22 mysql常用函数

一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL(1.5) -- 返回2 FLOOR(x) 返回小于或等于x的最大整数 SELECT FLOOR(1.5) -- 返回1 RAND() 返回0->1的随机数 SELECT RAND() --0.93099315644334 RAND(x) 返回0->1的随机数,x值相同时返

数据库---MySQL常用函数总结

一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x)    返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x)    返回大于或等于x的最小整数 SELECT CEIL(1.5) -- 返回2 FLOOR(x)    返回小于或等于x的最大整数 SELECT FLOOR(1.5) -- 返回1 RAND()    返回0->1的随机数 SELECT RAND() --0.93099315644334 RAND(x)    返回0

MySql常用函数数学函数、加密函数等(转—收藏)

MySql函数众多,这里只是列举了一部分常用的函数. 一.数学函数 ABS(x)                                         // 返回x的绝对值 BIN(x)   //返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x)                                 //返回大于x的最小整数值 EXP(x) //返回值e(自然对数的底)的x次方 FLOOR(x)   //返回小于x的最大整数值 GREATEST(x1