sql server2008常用函数大全

发布时间:2020-12-14编辑:脚本学堂
有关sql server2008中常用函数汇总,包括字符串函数、日期函数、数学函数等,需要的朋友参考下。

SQL2008表达式:是常量、变量、列或函数等与运算符的任意组合。

1. 字符串函数
函数 名称 参数 示例 说明
ascii(字符串表达式)
select ascii('abc') 返回 97
返回字符串中最左侧的字符的ASCII 码。
char(整数表达式)
select char(100) 返回 d
把ASCII 码转换为字符。
介于0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回
NULL 值。
charindex(字符串表达式 1, 字符串表达式2[,整数表达式])
select charindex('ab','BCabTabD')返回 3
select charindex('ab','BCabTabD',4)返回 6
在字符串2 中查找字符串 1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串 1 和字符串 2 中有一个是null 则返回 null。可以指定在字符串

2 中查找的起始位置。
difference(字符串表达式 1,字符串表达式 2)
select difference('Green','Greene')返回 4
返回一个0 到 4 的整数值,指示两个字符表达式的之间的相似程度。
0 表示几乎不同或完全不同,
4 表示几乎相同或完全相同。
注意相似并不代表相等
left(字符串表达式,整数表达式)
select left('abcdefg',2) 返回 ab
返回字符串中从左边开始指定个数的字符。
right(字符串表达式,整数表达式)
select right('abcdefg',2) 返回 fg
返回字符串中从右边开始指定个数的字符。
len(字符串表达式)
select len('abcdefg')返回 7
select len('abcdefg
') 返回 7
返回指定字符串表达式的字符数,其中不包含尾随空格。
lower(字符串表达式)
select lower('ABCDEF')返回 abcdef
返回大写字符数据转换为小写的字符表达式。
upper(字符串表达式)
select upper('abcdef')返回 ABCDEF
返回小写字符数据转换为大写的字符表达式。
ltrim(字符串表达式)
select ltrim('
abc')返回 abc
返回删除了前导空格之后的字符表达式。
rtrim(字符串表达式)
select rtrim('abc
')返回 abc
返回删除了尾随空格之后的字符表达式。
patindex(字符串表达式 1,字符串表达式 2)
select patindex('%ab%','123ab456')返回4
select patindex('ab%','123ab456')返回0
select patindex('___ab%','123ab456')返回1
select patindex('___ab_','123ab456')返回0

在字符串表达式
1 中可以使用通配符,此字符串的第一个
字符和最后一个字符通常是
%。
%表示任意多个字符,_表示任意字符
返回字符串表达式

2 中字符串表达式 1 所指定模式第一次出现的起始位置。没有找到返回0
reverse(字符串表达式)
select reverse('abcde')返回 edcba
返回指定字符串反转后的新字符串
space(整数表达式)
select 'a'+space(2)+'b' 返回 a b
返回由指定数目的空格组成的字符串。
str
(float 型小数[,总长度[,小数点
后保留的位数]])
select str(123.451)返回
123(123前面有空格)
select str(123.451,3)返回123
select str(123.451,7,3)返回123.451
select str(123.451,7,1)返回123.5
select str(123.451,5,3)返回123.5
select str(123.651,2)返回**
返回由数字转换成的字符串。返回字符数不到总长度的前面补
空格,超过总长度的截断小数位。如果需要截断整数位则返回
**。
注意在截断时遵循四舍五入
总长度。它包括小数点、符号、数字以及空格。默认值为
10。
小数点后最多保留
16 位。默认不保留小数点后面的数字
stuff
(字符串表达式 1,开始位置,长度,字符串表达式 2)
select stuff('abcdef',2,2,'123')
返回 a123def

在字符串表达式
1 中在指定的开始位置删除指定长度的字符,
并在指定的开始位置处插入字符串表达式
2。返回新字符串
substring(字符串表达式,开始位置,长度)
select substring('abcdef',2,2)返回bc
返回子字符串
replace(字符串表达式 1,字符串表达式 2,字符串表达式 3)
Select replace('abcttabchhabc','abc','123')
返回 123tt123hh123
用字符串表达式
3 替换字符串表达式 1 中出现的所有字符串表
达式
2 的匹配项。返回新的字符串
2. 日期和时间函数
函数名称
参数 示例 说明
dateadd(日期部分,数字,日期)
select dateadd(year,45,'1990-12-11')
返回 2035-12-11 00:00:00.000
select dateadd(month,45,'1990-12-11')
返回 1994-09-11 00:00:00.000
select dateadd(mm,45,'1990-12-11')
返回 1994-09-11 00:00:00.000
select dateadd(qq,12,'1990-12-11')
返回 1993-12-11 00:00:00.000
select dateadd(hh,12,'1990-12-11')
返回 1990-12-11 12:00:00.000
select dateadd(yy,-12,'1990-12-11')
返回 1978-12-11 00:00:00.000
返回给指定日期加上一个时间间隔后的新的日期值。
数字:用于与指定的日期部分相加的值。如果指定了非整数值,
则将舍弃该值的小数部分,舍弃时不遵循四舍五入。
日期:指定的原日期
在此函数中
dw,dy,dd 效果一样都表示天
datediff(日期部分,开始日期,结束日期)
select
datediff(yy,'1990-12-11','2008-9-10')
返回两个指定日期的指定日期部分的差的整数值。
在计算时由结束日期减去开始日期
返回 18
selectdatediff(mm,'2007-12-11','2008-9-10')
返回 9
在此函数中
dw,dy,dd 效果一样都表示天
datename(日期部分,日期)
select datename(mm,'2007-12-11')返回 12
select datename(dw,'2007-12-11')返回星期二
select datename(dd, '2007-12-11')返回 11
返回表示指定日期的指定日期部分的字符串。
dw 表示一星期中星期几,wk 表示一年中的第几个星期
dy 表示一年中的第几天
datepart
(日期部分,日期)
select datepart(mm,'2007-12-11')返回 12
select datepart(dw,'2007-12-11')返回 3
select datepart(dd, '2007-12-11')返回 11
返回表示指定日期的指定日期部分的整数。
wk 表示一年中的第几个星期
dy 表示一年中的第几天,
dw 表示一星期中星期几,返回整数默认 1 为星期天
getdate无参数
select getdate()
返回 2009-04-28 18:57:24.153
返回当前系统日期和时间。
day
(日期)
select day('2007-12-11')返回 11
返回一个整数,表示指定日期的天的部分。
等价于
datepart(dd, 日期)
month
(日期)
select month('2007-12-11')返回 12
返回一个整数,表示指定日期的月的部分。
等价于
datepart(mm, 日期)
year
(日期)
select year('2007-12-11')返回2007
返回一个整数,表示指定日期的年的部分。
等价于
datepart(yy, 日期)
getutcdate
无参数
select getutcdate()
返回2009-04-28 10:57:24.153
返回表示当前的
UTC(世界标准时间)时间。即格林尼治时间

GMT)

3. 日期部分(指定要返回新值的日期的组成部分。下表列出了 Microsoft SQL Server 2008 可识别的日期部分及其缩写。)
日期部分
含义
缩写year年yy, yyyy
quarter季qq, q
month月mm, m
dayofyear天(请看函数中的说明)dy, y
day天(请看函数中的说明)dd, d
week星期wk, ww
weekday天(请看函数中的说明)dw, w
hour小时hh
minute分钟mi, n
second秒ss, s
millisecond毫秒ms