mysql 取绝对值_MySQL ---------- 数据处理函数(文本、日期、数值)(十)

与大多数语言一样,SQL支持利用函数来处理数据。

  好处:函数一般在数据上执行,给数据的转换和处理提供了方便。

可移植的(portable) : 能运行在多个系统上的代码。

注意:

  1、多数SQL 是可移植的,在不同的DBMS 上虽有差异,但不难处理

  2、函数的可移植性不高,几乎主要的DBMS 都有各自独特的函数(我行你不行,你行我不行之类),而且差异还很大

  3、如果决定使用函数,要写注释(--),函数可以有效的完成工作,利于应用程序的性能。

大多数SQL 实现支持的类型函数:

  1、用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数

  2、用于在数值数据上进行算数操作(如返回绝对值,进行代数运算)的数值函数

  3、用于处理日期和时间值并从这些值中提取特定成份(如:返回两个日期之差,检查日期的有效性等)的日期和时间函数

  4、返回DBMS 正使用的特殊信息(如返回与用户登陆信息,检查版本细节)的系统函数

one、文本处理函数

6bc538f333bf1c1d64c8d6baf355c472.png

简单使用:

--  将名字转换为大写 
select vend_name,Upper(vend_name) as vend_bigname from vendors order by vend_name;

711a57217d1685d2a530260a3fdacb8e.png

soundex() 函数匹配所有发音类似的

db0963847259bc8b85e7e26d01c225d4.png

要全部包括起来

select  字段 from  表名 where soundex(字段名) = soundex(该字段中发音类似的值);

3d52d9b87c05a2ea4889165795bcf79c.png

Two、日期和时间处理函数

日期和时间采用相应的数据类型和特殊的格式存储,以便能快速和有效的排序或过滤,并节省物理存储空间

一般应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是被用来读取统计和处理这些值。

b814f05254e749de7cc421af54e39a68.png

注意:MySQL 使用的日期格式,无论你什么时候指定一个日期,不管是插入、更新或使用where进行过滤,日期的格式必须是 yyyy-mm-dd ,虽然,MySQL支持两位数字的年份,但这是首选的(如2020-02-20)

使用的表

be1fb407134931cee0360f64f90e8676.png

我们发现存储的数据类型是 datetime 格式是 yyyy-MM-dd HH:mm:ss

而我们一般可能需要的只是日期部分,怎么办来

有两种方式,

  一种是放在程序里取日期部分

  另一种是利用函数只取日期部分

--  取日期部分 
select order_num,date(order_date) as onlydate from orders order by order_date;

8921ea278136b44d3e6bd715a8e755d3.png

查询也是,如果只是想查询日期,则要使用Date(),即使你知道相应的列只包括日期也是如此

8921ea278136b44d3e6bd715a8e755d3.png
-- 将日期是2005-09-01 的检索出来
 select order_num,order_date as onlydate from orders where date(order_date)= '2005-09-01' order by order_date;

d7560c9248edc707bba4c33f76a87f6b.png

时间的范围查找

-- 将日期在2005-09-01 到 2005-09-30之间的 的检索出来 
select order_num,order_date as onlydate from orders where date(order_date) between '2005-09-01' and '2005-09-30' order by order_date;

30233b5a59ff2140f22757fc445a2ece.png

支持多种查询方式

4766b6cb2c77f5f15bdfb937aaa06034.png

Three、数值处理函数 : 对数值进行处理,一般用于代数、三角或几何运算

在主要的DBMS 中数值函数是最一致最统一的函数

d1ee9e33099e6ca4d098688e0459b92f.png

试一试

6e6a00f759571653a384b9a7fe7b27c1.png
SQL SERVER 的函数<br>1.字符串函数 <br>长度与分析用 <br>datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 <br>substring(expression,start,length) 不多说了,取子串 <br>right(char_expr,int_expr) 返回字符串右边int_expr个字符 <br>字符操作类 <br>upper(char_expr) 转为大写 <br>lower(char_expr) 转为小写 <br>space(int_expr) 生成int_expr个空格 <br>replicate(char_expr,int_expr)复制字符串int_expr次 <br>reverse(char_expr) 反转字符串 <br>stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从 start开始的length个字符用char_expr2代替 <br>ltrim(char_expr) rtrim(char_expr) 取掉空格 <br>ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符 <br>字符串查找 <br>charindex(char_expr,expression) 返回char_expr的起始位置 <br>patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0 <br>2.数学函数 <br>abs(numeric_expr) 求绝对值 <br>ceiling(numeric_expr) 取大于等于指定值的最小整数 <br>exp(float_expr) 取指数 floor(numeric_expr) 小于等于指定值得最大整数 <br>pi() 3.1415926......... <br>power(numeric_expr,power) 返回power次方 <br>rand([int_expr]) 随机数产生器 <br>round(numeric_expr,int_expr) 安int_expr规定的精度四舍五入 <br>sign(int_expr) 根据正数,0,负数,,返回+1,0,-1 <br>sqrt(float_expr) 平方根 <br>3.日期函数 <br>getdate() 返回日期 <br>datename(datepart,date_expr) 返回名称如 June <br>datepart(datepart,date_expr) 取日期一部份 <br>datediff(datepart,date_expr1.dateexpr2) 日期差 <br>dateadd(datepart,number,date_expr) 返回日期加上 number <br>上述函数中datepart的 写法 取值和意义 <br>yy 1753-9999 年份 <br>qq 1-4 刻 <br>mm 1-12 月 <br>dy 1-366 日 <br>dd 1-31 日 <br>wk 1-54 周 <br>dw 1-7 周几 <br>hh 0-23 小时 <br>mi 0-59 分钟 <br>ss 0-59 秒 <br>ms 0-999 毫秒 <br>日期转换 convert() <br>4.系统函数 <br>suser_name() 用户登录名 <br>user_name() 用户在数据库中的名字 user 用户在数据库中的名字 <br>show_role() 对当前用户起作用的规则 <br>db_name() 数据库名 <br>object_name(obj_id) 数据库对象名 <br>col_name(obj_id,col_id) 列名 <br>col_length(objname,colname) 列长度 <br>valid_name(char_expr) 是否是有效标识符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值