8、SQL Server 使用标量函数

来源:互联网 发布:js实现购物车加减特效 编辑:程序博客网 时间:2024/04/29 13:15

使用标量函数

通过对象资源管理器是了解所有SQL SERVER函数的最佳方法,

常见的标量函数(只对单个值操作返回单个值的函数)

一、用户信息函数

user_name():返回当前用户的数据库用户名

suser_sname():返回用户向SQLSERVER验证时使用的登录名

host_name():用户工作站的名称

APP_name():返回当前连接到SQL SERVER的应用程序名

二、日期-时间函数

两个返回当前日期和时间的函数

getdate():返回服务器的当前日期和时间,精确到3ms

getUTCdate():返回服务器的当前日期和时间对应的格林威治时间

下面4个Sql Server日期-时间函数抽取和处理存储在datetime列中的日期和时间

的特定部分。

1、DateName(DatePortion,date)

返回date中DatePortion指定的日期部分的值

如:print DateName(yy,getdate())

返回年份。

2、DatePart(Dateportion,date)

返回date中DatePortion指定的日期部分的值

如:print DatePart(dd,getdate())

返回日(月中的第几日)。

3、DateAdd(Dateportion,amount,Beginning Date)

对Beginning Date中指定的日期部分进行加Amount运算。

并返回进行运算后的整个日期值

通过amount=负数,可实现减运算

4、DateDiff(Dateportion,amount,Beginning Date)

对Beginning Date中指定的日期部分进行减Amount运算。

注:DateDiff 函数并不像DateAdd函数会返回运算后的整个日期值。而只

返回从中抽取的日期部分。

注:SQL SERVER 没有提供只存储日期的数据类型,但很多应用程序只使用日期,为了

避免查询混乱,可使用一个触发器删除时间数据并只存储日期。

三、字符串函数

1、SubString()

用于返回字符串的一部分

substring(string,start Position,length)

从string中的第start Position位置开始抽取length长度的字符串。返回。

其中字符位置从1开始计算。

如:print SubString('05 29 2012 10:31AM',1,5)

结果:05 29

2、Stuff( )

将一个字符串中的某些内容用另一些字符串来替代。

Stuff(String,Start Postion,count,replace String)

参数1:被操作的字符串

参数2:指定的起始位置

参数3:替代长度

参数4:用来替代的字符串

注:替代长度和用来替代的字符串长度不一定是相等,

原理是:删除指定长度的字符串,将新的字符串复制到那个位置。

如:print Stuff('05 29 2012 10:31AM',1,2,'1234')

结果:1234 29 2012 10:31AM

3、charindex(  )

charindex(Search String,String,Starting Position)

返回一个字符串1在另一个字符串2中的第几次出现的起始位置

参数1:字符串1

参数2:字符串2

参数3:指定字符串1 在字符串2 中第几次出现。

如:print charindex('05','05 29 2005 10:31AM',2)

结果:9

4、patindex( )

patindex(%pattern%,string )

查找指定模式(可包含通配符)在字符串中首次出现的位置。

如:print patindex('%[6-9]%','05 29 2005 10:31AM')

结果:5

5、Right(String,count)、Left(String,count)

返回字符串最右边的几个字符。

返回字符串最左边的几个字符。

如:print right('05 29 2005 10:31AM',2)

print left('05 29 2005 10:31AM',4)

结果:

AM

05 2

6、Len( )

Len(String)

返回字符串的长度

7、Rtrim( )、Ltrim()

Rtrim( String )删除所有字符串的前空格,

Ltrim( String )删除所有字符串的后空格,

8、Upper( )、Lower( )

Upper( String )将所有字符串中的字符大写

Lower( String )将所有字符串中的字符小写

9、Replace( Source,Search,Replace )

利用Replace字符串替换Source中的所有Serach字符串。

如:print Replace('05 29 2005 10:31AM','0','ab')

结果:ab5 29 2abab5 1ab:31AM

注:SQL Server字符串能够接受两个引号,并将其转换为单个引号。

四、Soundex函数

一种为了美国人中普查而创建的语言模式匹配系统,根据英语发音。

1、Soundex()

 Soundex(‘英文字字符串’)

2、Difference(String1,STring2)

返回两个字符串的Soundex编码的差异程序。

五、数据类型转换函数

1、Cast

 Cast(input  as  datatype)

将input转换为数据类型datatype

如:print Cast('124'  as int )

2、Convert

Convert(DateType,expression[,Style])

普通转换不需要Style

一般如果将文本转换为DateTime数据类型时,需要将文本输入应用指定的格式

转换函数的日期样式表

样式

描述

格式

0/100*

默认格式

Mon dd yyyy hh:miAM(或PM)

1/101

美国 

mm/dd/yyyy

2 102 

ANSI 

yy.mm.dd

3 103 

英国/法国 

dd/mm/yy

4 104 

德国

dd.mm.yy

5 105 

意大利 

dd-mm-yy

6 106

dd mon yy

7 107 

mon dd, yy

8 108

-

hh:mm:ss

9 或 109 *  

默认值 + 毫秒

mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10 110  

美国

mm-dd-yy

11 111  

日本

yy/mm/dd

12 112 

ISO 

yymmdd

13 或 113 *

欧洲默认值 + 毫秒

dd mon yyyy hh:mm:ss:mmm(24h)

14 或114  

-

hh:mi:ss:mmm(24h)

20 或 120 *

ODBC 规范

yyyy-mm-dd hh:mm:ss[.fff]

21 或 121 *  

ODBC 规范(带毫秒)

yyyy-mm-dd hh:mm:ss[.fff]

126

ISO8601

yyyy-mm-dd Thh:mm:ss:mmm(不含空格)

130

科威特

dd mon yyyy hh:mi:ss:mmmAM

131

科威特

dd/mm/yy hh:mi:ss:mmmAM

如:print convert(datetime,getdate())

print convert(datetime,getdate(),1)

print convert(datetime,getdate(),21)

3、Str( )

将数字转换为字符串类型

str(Number,Length,Decimal)

参数1:待转换的数字

参数2:转换后的字符串的长度

参数3:小数点的小数位数

如:print Str(245,10,3)

结果:   245.000

六、服务器环境信息

1、db_name():返回当前数据库的名称

2、getUtcDate()

3、ServerProperty(‘参数’):获取关于服务器的指定属性信息

其中参数常用取值:

Collation:排序规则类型

edition:数据库版本号

engineedittion:引擎版本 1 2 3=个人、标准、企业

instancename:如果是默认实例则为null,否则返回实例名

productversion:SQL SERVER的版本号

ProductLevel:

SeverName:SQL Server实例的全称。

返回类型

sql_variant

示例:print convert(varchar(50),ServerProperty('edition'))

结果:Express Edition (64-bit)

原创粉丝点击