Mysql常用数据处理函数

本文详细介绍了SQL中的函数使用,包括文本处理如Left()、Right(),日期时间处理如AddDate(),数值处理如Abs()等。通过实例展示了如何在SQL查询中应用这些函数,强调了在进行时间比较时的注意事项,以及提供了不同类型的函数在数据处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数介绍

SQL和大多数程序语言一样支持用函数来处理数据。不同的DBMS中有SQL通用的数据处理函数,当然也有自己独有的数据处理函数,所以函数在DBMS上的可移植性没有SQL语言的强。

二、使用函数

大多数的DBMS都支持以下函数:

  • 用于处理文本串(删除,填充,转换值大小写)的文本函数
  • 用于数据数值上的算术运算(绝对值,代数运算)
  • 处理日期和时间值,并从中提取特殊成分(返回两日期时间差,检查日期有效性等)
  • 返回DBMS正在使用的特殊信息(用户登录,版本信息)–系统函数

三、具体实现

1、文本处理函数

常用的文本处理函数:
函数说明
Left(str,length)返回str串左边起length个字符
Right(str,length)返回str串右边起length个字符
Length( )返回串的长度
Locate(str1,str2 )找出串str1在串str2中第一次出现的位置
Lower( )将串转换为小写
Upper()将串转换为大写
LTrim()去掉左边的空格
RTrim()去掉右边的空格
Soundex返回串的SOUNDEX值
SubString(str,index)返回字符串str从index开始的子串

注:

Soundex是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,可用Soundex做类似模糊匹配的效果。例如Knuth和Kant二个字符串,它们的Soundex值都是“K530”。其在电脑大师高德纳名著《计算机程序设计艺术》都有详细的介绍。

2、日期和时间处理函数

函数说明
Adddate(date,INTERVAL expr unit)给data加上expr间隔的unit单位时间
AddTime()增加一个时间(时,分等)
CurDate()返回当前日期
CurTime()返回当前时间
Date()返回当前日期时间的日期部分
DateDiff()计算两个日期之差
Date_Add()灵活的时间运算函数,和addTime()差不多
Date_Format()格式化日期时间串
Day()返回天
Hour()返回小时
Minute()返回分钟
Second()返回秒数
DayOfWeek()返回星期几
Month()返回月份
Now()返回当前日期和时间
Time()返回当前时间
Year()返回年数

实例:

AddDate(date,INTERVAL expr unit)

  • INTERVAL 指定单位是不可省略(增加单位是打印可以省略)
  • expr :增加数量
  • unit :增加单位
mysql> select hiredate ,adddate(hiredate,interval 1 day) from emp;
+------------+----------------------------------+
| hiredate   | adddate(hiredate,interval 1 day) |
+------------+----------------------------------+
| 1980-12-17 | 1980-12-18                       |
| 1981-02-20 | 1981-02-21                       |
| 1981-02-22 | 1981-02-23                       |
| 1981-04-02 | 1981-04-03                       |
| 1981-09-28 | 1981-09-29                       |
| 1981-05-01 | 1981-05-02                       |
| 1981-06-09 | 1981-06-10                       |
| 1987-04-19 | 1987-04-20                       |
| 1981-11-17 | 1981-11-18                       |
| 1981-09-08 | 1981-09-09                       |
| 1987-05-23 | 1987-05-24                       |
| 1981-12-03 | 1981-12-04                       |
| 1981-12-03 | 1981-12-04                       |
| 1982-01-23 | 1982-01-24                       |
+------------+----------------------------------+
14 rows in set (0.00 sec)

// 实例:
/**增加一天*/
select adddate(hiredate,interval 1 hour),hiredate from emp;
/**增加一分*/
select adddate(hiredate,interval 1 minute),hiredate from emp;
/**增加一秒*/
select adddate(hiredate,interval 1 second),hiredate from emp;
/**增加一天,interval 和 nuit可以省略*/
select adddate(hiredate,1),hiredate from emp; 


/**增加一天一时*/
select adddate(hiredate,interval '1 1' DAY_HOUR),hiredate from emp;
/**增加一时一分*/
select adddate(hiredate,interval '1:1' HOUR_MINUTE),hiredate from emp;

注意:Mysql中在用where过滤时间数据时候,会自动精确到时,分和秒,。所以在进行时间比较的时候要相当注意两者比较的部分,

只比较日期的时候应该把时间部分略去

筛选时间区间

方案一:between and 关键字
mysql> select hiredate from emp where hiredate between '1981-01-01' and '1982-12-12';

必须使用单引号

方案二:时间过滤
select hiredate from emp where year(hiredate)=1981 and (month(hiredate) in (2,4));

3、数值处理函数

在主要的DBMS中,数值处理函数是最统一和最一致的函数,主要用于代数,三角或集合运算。

函数说明
Abs()返回一个数的绝对值
Cos()返回一个角的余弦值
Exp()返回一个数的指数值
Mod()取余
PI()返回圆周率
Rand()返回一个随机数
Sin()返回一个角的正弦值
Sqrt()返回一个数的平方根
Tan()返回一个角的正切值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值