半夏秋年  

一、字符串函数

函数
参数
描述
示例
sql
结果
datalength
string
返回字符串包含字符数,但不包含后面的空格
select datalength('abcdefghijklmnopqrstuvwxyz'
26
substring
char_expr, start, length
截取字符串char_expr
select substring('abcdefghijklmnopqrstuvwxyz', 3, 6)
'cdefgh'
right
char_expr, int_expr
返回字符串右边int_expr个字符
select right('abcdefghijklmnopqrstuvwxyz', 6)
'uvwxyz'
left
char_expr, int_expr
返回char_expr左起 int_expr个字符。
select left('abcdefghijklmnopqrstuvwxyz', 6)
'abcdef'
ltrim
char_expr
把字符串头部的空格去掉。
select ltrim('   dsdd')
'dsdd'
rtrim
char_expr
把字符串尾部的空格去掉。
select rtrim('asdbf     ')
'asdbf'
str 
float_expr,length,decimal
把数值型数据转换为字符型数据
length 指定返回的字符串的长度(默认10)
decimal 指定返回的小数位数(默认0)
当length 或者decimal 为负值时,返回NULL;
当length 小于小数点左边(包括符号位)的位数时,返回length 个*;
先服从length ,再取decimal ;
当返回的字符串位数小于length ,左边补足空格。
select str(10, 1) ==>'*'
select str(10, 2) ==>'10'
select str(10, 3) ==>'  10'
 
upper
char_expr
转为大写
select upper('abcdefg')
'ABCDEFG'
lower
char_expr
转为小写
select lower('ABCDEFG')
'abcdefg'
space
int_expr
生成int_expr个空格
select space(6)
'      '
replicate
char_expr,int_expr
复制字符串int_expr次
select replicate('abcd',3)
'abcdabcdabcd'
reverse
char_expr
反转字符串
select reverse('abcdefg')
'gfedcba'
stuff
char_expr1,start,length,char_expr2
将字符串char_expr1中的从 start开始的length个字符用char_expr2代替
select stuff('abcdefghijklmn', 3, 4, '0')
'ab0ghijklmn'
ascii
char
将字符转ASCII码
select ascii('a')
97
char
ascii
将ASCII码转字符
select char(97)
'a'
charindex
char_expr,expression
返回char_expr的起始位置
select charindex('a', 'abchdgakdha')
1
patindex
"%pattern%",expression
返回指定模式的起始位置,否则为0
select patindex('%abc%', 'slksjabcfgjaksabcsjh')
6

二、数学函数

函数
参数
描述
示例
sql
结果
abs
numeric_expr
求绝对值
select abs(-6)
6
ceiling
numeric_expr
取大于等于指定值的最小整数
select ceiling(12.1)
13
avg
numeric_expr
取平均数
select avg(orderno) from hmodule
4
exp
float_expr
取指数
 
 
floor
numeric_expr
小于等于指定值得最大整数
select floor(12.7)
12
pi
 
3.1415926.........
 
 
power
numeric_expr, power
返回power次方
select power(2, 3)
8
rand
 
随机数产生器
select rand()
 
round
numeric_expr,int_expr
按int_expr规定的精度四舍五入
select round(12.372, 1)
12.400
sign
int_expr
根据正数,0,负数,,返回+1,0,-1
select sign(-9)
-1
sqrt
float_expr
平方根
select sqrt(9)
3

三、日期时间函数

函数
参数
描述
示例
sql
结果
getdate
 
返回日期
select getdate()
'2021-04-06 17:38:53.453'
getutcdate
 
获取utc时间
select getutcdate()
'2021-04-06 09:39:36.040'
day
date_expr
取出天
select day(GETDATE())
6
month
date_expr
取出月
select month(GETDATE())
4
year
date_expr
取出年
select year(GETDATE())
2021
datename
datepart,date_expr
返回名称
select datename(month, GETDATE())
select datename(WEEKDAY, GETDATE())
select datename(WEEK, GETDATE())
04
星期二
15(一年中的第几周)
datepart
datepart,date_expr 
取日期一部份
select datepart(year, GETDATE())
select datepart(WEEKDAY, GETDATE())
select datepart(WEEK, GETDATE())
2021
3(实际是星期二)
15(一年中的第几周)
datediff
datepart, date_expr1.dateexpr2
日期差
select datediff(MONTH, GETDATE(), GETDATE()+36)
1
dateadd
datepart,number,date_expr
返回日期加上 number
 
 

datepart含义:

日期部分
缩写
备注
year
yy, yyyy
quarter
qq, q
季度
month
mm, m
dayofyear
dy, y
一年中的第几天
day
dd, d
week
wk, ww
一年中的第几周
weekday
dw日期部分返回对应于星期中的某天的数,例如:Sunday =1
星期几
Hour
hh
小时
minute
mi, n
分钟
second
ss, s
millisecond
ms
毫秒

四、系统其他函数

 
函数
参数
描述
示例
sql
结果
suser_name
 
用户登录名
select suser_name()
admin
user_name
 
用户在数据库中的名字
select user_name()
dbo
user
 
用户在数据库中的名字
select user
 

五、类型转换函数

 
函数
参数
描述
示例
sql
结果
convert
数据类型[(长度),表达式 [,样式]
将一种数据类型的表达式显式转换为另一种数据类型的表达式;
    长度:如果数据类型允许设置长度,可以设置长度,例如 varchar(10);
    样式:用于将日期类型数据转换为字符数据类型的日期格式的样式。
 
 
cast 
表达式 AS 数据类型[(长度)]
将一种数据类型的表达式显式转换为另一种数据类型的表达式。
select cast(123 as nvarchar)
'123'
select '年龄:' + cast(23 as nvarchar)
'年龄:23'
select CAST('2021-04-07 09:40:38' as DATETIME)
2021-04-07 09:40:38.000
 
Style ID
Style 格式 
示例
sql
结果
100 或者 0
 
 
mon dd yyyy hh:miAM (或者 PM)
 
 
select CONVERT(VARCHAR(19),GETDATE())
'04  7 2021  9:27AM'
select CONVERT(VARCHAR(19),GETDATE(), 0)
'04  7 2021  9:27AM'
select CONVERT(VARCHAR(19),GETDATE(), 100)
'04  7 2021  9:27AM'
101
 
mm/dd/yy
 
select CONVERT(VARCHAR(10),GETDATE(), 101)
'04/07/2021'
select CONVERT(DATETIME, '04/07/2021', 101)
2021-04-07 00:00:00.000
102
 
yy.mm.dd
 
select CONVERT(VARCHAR(10),GETDATE(), 102)
'2021.04.07'
select CONVERT(DATETIME, '2021.04.07', 102)
2021-04-07 00:00:00.000
103
dd/mm/yy
 
 
104
dd.mm.yy
 
 
105
dd-mm-yy
 
 
106
dd mon yy
 
 
107
Mon dd, yy
 
 
108
hh:mm:ss
 
 
109 或者 9
mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
 
 
110
mm-dd-yy
 
 
111
yy/mm/dd
 
 
112
yymmdd
 
 
113 或者 13
dd mon yyyy hh:mm:ss:mmm(24h)
 
 
114
hh:mi:ss:mmm(24h)
 
 
120 或者 20
yyyy-mm-dd hh:mi:ss(24h)
select CONVERT(VARCHAR(19),GETDATE(), 120)
'2021-04-07 09:36:59'
121 或者 21
yyyy-mm-dd hh:mi:ss.mmm(24h)
 
 
126
yyyy-mm-ddThh:mm:ss.mmm(没有空格)
 
 
130
dd mon yyyy hh:mi:ss:mmmAM
 
 
131
dd/mm/yy hh:mi:ss:mmmAM
 
 

六、系统函数

函数
参数
描述
示例
sql
结果
newid
 
返回一个GUID(全局唯一表示符)值
select newid()
'877640C9-E367-4BE6-B05B-8F0BD8C36243'
isnumeric 
 
 
任意表达式
 
 
判断表达式是否为数值类型或者是否可以转换成数值。 
是:返回1,
不是:返回0
 
 
select isnumeric(1111)
1
select isnumeric('123rr')
0
select isnumeric('123')
1
isnull 
 
任意表达式1,任意表达式2
 
如果任意表达式1不为NULL,则返回它的值;否则,在将任意表达式2的类型转换为任意表达式1的类型(如果这两个类型不同)后,返回任意表达式2的值。
 
select isnull(null, '字符串')
'字符串'
select isnull('', '字符串')
''
isdate
 
 
任意表达式
 
 
 确定输入表达式是否为有效日期或可转成有效的日期;  
是:返回1,
不是:返回0
 
 
select isdate(getdate())
1
select isdate('2021-04-02')
1
select isdate('999')
0

七、排名函数

函数
参数
描述
示例
sql
结果
row_number 
 
为结果集内每一行进行编号,从1开始后面行依次加1,常用于产生序号;
select row_number() over(order by id desc) as [NO], modulename from dbo.hmodule

八、聚合函数

函数
参数
描述
示例
sql
结果
count
表达式
返回组中的总条数,count(*)返回组中所有条数,包括NULL值和重复值项,如果抒写表达式,则忽略空值,表达式为任意表达式。
select COUNT(1) from hmodule where moduletype=1
7
max
表达式
返回组中的最大值,空值将被忽略,表达式为数值表达式,字符串表达式,日期。
select MAX(num) from num_table
9
min
表达式
返回组中的最小值,空值将被忽略,表达式为数值表达式,字符串表达式,日期。
select MIN(num) from num_table
1
sum
表达式
返回组中所有值的和,空值将被忽略,表达式为数据表达式。
select SUM(num) from num_table
74
avg
表达式
返回组中所有值的平均值,空值将被忽略,表达式为数据表达式。
select AVG(num) from num_table
4
 
 
posted on 2021-04-07 10:19  半夏秋年  阅读(256)  评论(0编辑  收藏  举报