函数的使用

SOL Server 数据操作与查询

第五章  函数的使用


前言:

       本章主要介绍 SOL 常用函数的使用方法,可作参考。


目录

一、字符串函数

二、日期函数和时间函数

三、数学函数

四、转换函数


一、字符串函数

1. replace(代替) 函数:替换字符串

代码如下(示例):

---语法如下
use data(数据库名)
select replace('character_expression'(原字符串),'searchstring'(要替换的字符串),'replacementstring'(要替换成的字符串))

---实例
--将"MingMing"中的"ing"换成"i"
use sun 
select replace('MingMing','ing','i') as '替换结果'(别名)
--结果
MiMi

2. reverse(反转) 函数:反转字符串

代码如下(示例):

---语法如下
use data(数据库名)
select reverse('character_expression'(需反转的字符串))

---实例
--反转"MingMing"
use sun 
select reverse('MingMing') as '反转结果'(别名)
--结果
gniMgniM

3. str 函数:转换有数字数据的字符串

代码如下(示例):

---语法如下
use data(数据库名)
select str('float_expression'(带小数的数字数据类型字符串),'length'(返回字符串的长度),'decimal'(需保留的小数位数))

---实例
--返回"123.45"
use sun 
select str('123.45','5','1') 
--结果
123.5

4. substring(截取) 函数:返回指定个数的字符串

代码如下(示例):

---语法如下
use data(数据库名)
select 需截取的列名 substring('value_expression'(需截取的列名),'start_expression'(开始截取的位置),'length_expression'(截取的长度))

---实例
--在 employee 表 name 中从第1位开始截取长度为2的字符串
use sun 
select name,substring('name','1','2')
--结果
张逸杰(原名) ———— 张逸(截取后显示的结果)

二、日期函数和时间函数

1. getdate 函数:返回当前系统日期和时间

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select getdate() as 当前系统时间

2. day 函数:返回一个整数,日期“日”的部分

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select day('年-月-日') as 天(day)

---实例
(use sun:需数据库在使用)
select day('2021-02-21') as 天
--结果
21

3. month 函数:返回日期中“月”的整数

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select month('年-月-日') as 月

---实例
(use sun:需数据库在使用)
select month('2021-04-26') as 月
--结果
4

4. year 函数:返回日期中“年”的整数

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select year('年-月-日') as 年

---实例
(use sun:需数据库在使用)
select year('2021-05-28') as 年
--结果
2021

5. datediff 函数:返回日期和时间的边界数(时间差)

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select datediff(datepart(时间类型,如:年、月、日),startdate(开始时间),enddate(结束时间))

---实例
(use sun:需数据库在使用)
select datediff(day,'2020-02-18','2020-04-18') as 天
select datediff(month,'2020-01-01','2021-01-01') as 月
select datediff(year,'2013-08-06','2021-08-06') as 年
--结果
天:60
月:12
年:8

注意:

开始时间比结束时间晚,返回值为负值

6. dateadd 函数:日期或时间间隔的数值与指定日期部分相加后的结果(number不为整数时废弃小数部分)

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select dateadd(datepart(事件类型:年、月、日等),number(要增加的准确数值),date(返回日期或日期格式的字符串表达式))

---实例
(use sun:需数据库在使用)
select dateadd(day,3,getdate()(当前系统时间)) as 增加3天
select dateadd(month,6,getdate()(当前系统时间)) as 增加6个月
select dateadd(year,10,getdate()(当前系统时间)) as 增加10年
--结果
天:2021-08-17(当前系统时间)——2021-08-20(增加后显示的时间)
月:2021-08-17(当前系统时间)——2022-02-17(增加后显示的时间)
年:2021-08-17(当前系统时间)——2031-08-17(增加后显示的时间)

三、数学函数

1. power 函数:进行次方幂运算,运算结果为整数

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select power(number(整数),power(次方))

---实例
(use sun:需数据库在使用)
select power(2,2) as 2的平方结果
select power(2,3) as 2的3次方结果
select power(2,4) as 2的4次方结果
--结果
平方:4
3次方:8
4次方:16

2. rand 函数:返回0~1之间的随机数(folat:浮点类型)

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select rand([seed]:种子值,任何整数)

---实例
(use sun:需数据库在使用)
select rand(100)
select rand(30)
select rand()
--结果
100:0.715436...
30:0.714312...
0:0.094053...

3. round 函数:四舍五入为指定的小数位数(小数最后的一个0不算)

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select round(number(小数),length(保留的小数位数),[,function]:为0时要四舍五入,不为0时不用四舍五入)

---实例
(use sun:需数据库在使用)
select round(123.6543,3)
select round(123.6548,3)
select round(123.6548,3,1)
--结果
0:123.6540
0:123.6550
1:123.6540

四、转换函数

1. cast 函数:将某种数据类型转换为另一种数据类型(隐性转换,系统转换)

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select cast(需转化的值 as(作为,转换) 要转换成的值(目标系统提供的数据类型))

---实例
(use sun:需数据库在使用)
select cast('mingrikeji' as nvarchar(6))
--结果
MINGRI

2. convert 函数:按指定格式将数据转换为另一种数据类型(显性转换,手动转换)

代码如下(示例):

---语法如下
(use data(数据库名):需数据库在使用)
select convert(data_type(目标系统提供的数据类型)[(length)],expression(参数)[,style(日期样式)] )

---实例
(use sun:需数据库在使用)
select convert(nvarchar,getdate(),126)
--结果
2021-08-17T17:37:52

注意:

style 日期样式:

样式说明输入/输出格式
126ISO8601yyyy-mm-ddThh:mm:ss:mmm(不含空格)

yyyy:年    mm:月   dd:日   hh:小时   mm:分   ss:秒   mmm:毫秒


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禅心初露

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值