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

下面来说一下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 |
+------------------------------------------------+
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') |
+-------------------------------------------+
| :: PM :: |
+-------------------------------------------+
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  SECOND);
+---------------------------------------------------+
| DATE_ADD('2000-12-31 23:59:59',INTERVAL SECOND) |
+---------------------------------------------------+
| -- :: |
+---------------------------------------------------+
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) |
+--------------------------------------------------------------+
| -- :: |
+--------------------------------------------------------------+
row in set (0.00 sec)

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

举例:

现在有员工工资表如下:

mysql> select * from salary;
+----+---------+
| id | salary |
+----+---------+
| | 1000.00 |
| | 2000.00 |
| | 3000.00 |
| | 4000.00 |
| | 5000.00 |
| | 6000.00 |
| | 7000.00 |
| | NULL |
+----+---------+
rows in set (0.00 sec)

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

mysql> select id,if(salary>,'高工资','低工资') as level from salary;
+----+-----------+
| id | level |
+----+-----------+
| | 低工资 |
| | 低工资 |
| | 低工资 |
| | 低工资 |
| | 低工资 |
| | 高工资 |
| | 高工资 |
| | 低工资 |
+----+-----------+
rows in set (0.00 sec)

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

mysql> select ifnull(salary,) from salary;
+------------------+
| ifnull(salary,) |
+------------------+
| 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> then '高工资' else '低工资' end from salary;
+----+-------------------------------------------------------------+
| id | case when salary> then '高工资' else '低工资' end |
+----+-------------------------------------------------------------+
| | 低工资 |
| | 低工资 |
| | 低工资 |
| | 低工资 |
| | 低工资 |
| | 高工资 |
| | 高工资 |
| | 低工资 |
+----+-------------------------------------------------------------+
rows in set (0.00 sec)

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

mysql> select id,case salary when  then '特低工资' when  then '低工资' else '高工资' end from salary;
+----+-------------------------------------------------------------------------------------------+
| id | case salary when then '特低工资' when then '低工资' else '高工资' end |
+----+-------------------------------------------------------------------------------------------+
| | 特低工资 |
| | 低工资 |
| | 高工资 |
| | 高工资 |
| | 高工资 |
| | 高工资 |
| | 高工资 |
| | 高工资 |
+----+-------------------------------------------------------------------------------------------+
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)

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

  1. mysql常用函数参考

    mysql常用函数参考   对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...

  2. 学生选课数据库SQL语句45道练习题整理及mysql常用函数(20161019)

    学生选课数据库SQL语句45道练习题: 一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四 ...

  3. MySQL常用函数介绍

    MySQL常用函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作符介绍 1>.操作符优先级 mysql; +----------+ | +----------+ ...

  4. MySql常用函数大全

    MySql常用函数大全 MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操 ...

  5. Mysql 常用函数(15)- upper 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html upper 的作用 将所有字符串更改为大写,然后返 ...

  6. 第十章 MySQL 常用函数

    第十章 MySQL 常用函数 第一节:日期和时间函数 1,CURDATE() 返回当前日期:2,CURTIME() 返回当前时间:3,MONTH(d) 返回日期 d 中的月份值,范围是 1~12 第二 ...

  7. 【数据库】MySql常用函数梳理

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5866388.html MySql常用函数梳理: 1:数学函数 使用格式:一般用于插入.修改语句中,直接 函数( ...

  8. MySQL 常用函数介绍

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  9. Mysql 常用函数(1)- 常用函数汇总

    Mysql常用函数的汇总,可看下面系列文章 Mysql常用函数有哪几类 数值型函数 字符串型函数 日期时间函数 聚合函数 流程控制函数 数值型函数 函数名称 作用 ABS 求绝对值 SQRT 求二次方 ...

随机推荐

  1. SPI通信协议(非原创,转载他人,用于学习)

    SPI通信协议:1.SPI主从模式:2.数据信号的相位与极性:3.数据帧的格式. 一.什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写.是 Moto ...

  2. 下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题

    最近遇到一个非常奇特的问题,在一个 ASP.NET Core 项目中从 SQL Server 2008 R2 中查询获取 100 条记录竟然耗时 10 多秒,如果是查询本身慢,那到不是什么奇特的问题. ...

  3. 调用redis的时候二维码不断刷新的排查

    一.背景和现象. 项目是PHP开发的,点击登录的时候就根据随机数生成了二维码,缓存在了redis.用户用微信扫描了二维码分析出需要请求的链接,然后微信浏览器就请求了服务器,服务器通过了随机数认证.正当 ...

  4. 【算法】二叉查找树(BST)实现字典API

    参考资料 <算法(java)>                           — — Robert Sedgewick, Kevin Wayne <数据结构>       ...

  5. poj2699

    神题目=神题解+神读入 题意:n个人比赛, 两两比,共n*(n-1), 赢得1分, n<=10(这给了我们枚举的暗示),如果一个人打败了所有比自己分数高的人, 或者他本身就是分数最高的, 那么他 ...

  6. HTTP 协议基础概念和报文结构

    基础概念 1.WWW(World Wide Web,万维网)构建技术有3项: (1)把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文 ...

  7. 机器学习技法笔记:09 Decision Tree

    Roadmap Decision Tree Hypothesis Decision Tree Algorithm Decision Tree Heuristics in C&RT Decisi ...

  8. Liferay7 BPM门户开发之3: Activiti开发环境搭建

    下载地址: http://activiti.org/download.html 源码: https://github.com/Activiti/Activiti 环境准备(检查项): JDK 1.7 ...

  9. 自定义线程池reject策略

    import java.util.Date;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.Rej ...

  10. 21天打造分布式爬虫-urllib库(一)

    1.1.urlopen函数的用法 #encoding:utf-8 from urllib import request res = request.urlopen("https://www. ...