MSSQL常用函数

函数名

作用

简单示例

字符转换

 

 

ASCLL

返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.

ASCLL(‘A’) 返回 97

ASCLL(1)  返回  49

CHAR

ASCLL码转换成字符,如果没有输入 0~225之间的数CHAR()将返回NULL.

CHAR(‘97’) 返回 a

CHAR(‘255’) 返回NULL

LOWER()

将字符串全部转化成小写.

Lower('AB') 返回 ab

UPPER

将字符串全部转换成大写.

UPPER(‘ab’) 返回 AB

STR()

将数值类型转换成字符类型STR(folat,length,decmal ).

STR(2.09876,10,3)返回 2.099字符

 去空格函数

 

 

LTRIM()

去除字符串头部的空格.

LTRIM('  123')返回 ‘123’

RTRIM()

去除字符串尾部的空格.

RTRIM(‘123  ’)返回 ’123’

REPLACE()

替换REPLACE(nvarchar,nvarchar,nvarchar)

去除字符串中全部的空格.

replace(' 1 2 3 4 ',' ','') 返回1234

取子字符串

 

 

LEFT()

LEFT (<character_expression> <integer_expression>)返回character_expression左起 integer_expression个字符.

left('abc',2) 返回ab

RIGHT()

RIGHT (<character_expression> <integer_expression>)返回character_expression右起 integer_expression个字符.

RIGHT('abc',2) 返回bc

SUBSTRING()

SUBSTRING (<expression> <starting_ position> length)返回从字符串左边第starting_ position 个字符起length个字符的部分.

SUBSTRING('abcd',1,2)返回ab

字符串比较函

 

 

CHARINDEX()

返回字符串中某个指定的子串出现的开始位置。CHARINDEX(<substring_expression> <expression>)其中substring _expression是所要查找的字符表达式,expression可为字符串也可为列名表达式。如果没有发现子串,则返回0值。此函数不能用于TEXTIMAGE数据类型.

CHARINDEX(‘A’,’Abcde’) 返回的是1

 

PATINDEX()

返回字符串中某个指定的子串出现的开始位置。 PATINDEX (<’%substring_expression%’> <column_name>)其中子串表达式前后必须有百分号“%”否则返回值为0。与CHARINDEX函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR VARCHARTEXT 数据类型.

PATINDEX('%d%','d')返回 1

字符串操作函数

 

 

QUOTENAME()

QUOTENAME (<character_expression>[ quote_ character])其中quote_ character 标明括字符串所用的字符,缺省值为“[]

quotename('abc','[]')返回 [abc]

REPLICATE()

返回一个重复character_expression 指定次数的字符串。 REPLICATE (character_expression integer_expression)如果integer_expression值为负值,则返回NULL

REPLICATE('jg',3)返回 jgjgjg

REPLICATE()

将指定的字符串的字符排列顺序颠倒。 REVERSE (<character_expression>)其中character_expression可以是字符串、常数或一个列的值.

REVERSE('123') 返回 321

REPLACE()

返回被替换了指定子串的字符串。 REPLACE (<string_expression1> <string_expression2> <string_expression3>)string_expression3替换在string_expression1中的子串string_expression2.

REPLACE(‘ABC’,’B’,b) 返回 ‘AbC’

SPACE()

返回一个有指定长度的空白字符串。 SPACE (<integer_expression>)如果integer_expression值为负值,则返回NULL .

SPACE(6) 返回6个长度的空字符串

STUFF()

用另一子串替换字符串指定位置、长度的子串。 STUFF (<character_expression1> <start_ position> <length><character_expression2>)如果起始位置为负或长度值为负,或者起始位置大于character_expression1的长度,则返回NULL值。如果length长度大于character_expression1 start_ position 以右的长度,则character_expression1只保留首字.

STUFF('abcdefg',1,3,'ad')返回addefg

数据类型转换函数

 

 

CAST()

CAST (<expression> AS <data_ type>[ length ])

CAST(12  AS  NVARCHAR(50) )

CONVERT()

CONVERT (<data_ type>[ length ] <expression> [ style]) 1data_typeSQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。 2length用于指定数据的长度,缺省值为30 3)把CHARVARCHAR类型转换为诸如INTSAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。 4TEXT类型到CHARVARCHAR类型转换最多为8000个字符,即CHARVARCHAR数据类型是最大长度。 5IMAGE类型存储的数据转换到BINARYVARBINARY类型,最多为8000个字符。 6)把整数值转换为MONEYSMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。 7BIT类型的转换把非零值转换为1,并仍以BIT类型存储。 8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。 9)用CONVERT()函数的style选项能以不同的格式显示日期和时间。style是将DATATIMESMALLDATETIME数据转换为字符串时所选用的 SQL Server系统提供的转换样式编号,不同的样式编号有不同的输出格式.

CONVERT(MONEY,'39.01')

日期函数

 

 

Day(date_expression)

返回date_expression中的日期值

Day(‘2012-12-14’) 返回 14

Month(date_expression)

返回date_expression中的月份值

Month(‘2010-11-12’) 返回 11

Year(date_expression)

返回date_expression中的月份值

Year('2012-11-21')返回2012

DATEADD(<datepart> <number> <date>)

DATEADD (<datepart> <number> <date>)返回指定日期date加上指定的额外日期间隔number产生的新日期。

dateadd(year,2,'2012-12-13')

返回:2014-12-13 0:00:00

dateadd(month,2,’2012-12-13’)

返回:2013-2-13 0:00:00

dateadd(day,2,’2012-12-13')

返回:2012-12-15 0:00:00

dateadd(hour,2,'2012-12-13')

返回:2012-12-13 2:00:00

dateadd(minute,2,'2012-12-13')

返回:2012-12-13 0:02:00

dateadd(second,2,'2012-12-13') 

返回:2012-12-13 0:00:02

DATEDIFF()

DATEDIFF (<datepart> <date1> <date2>)返回两个指定日期在datepart方面的不同之处,即date2超过date1的差距值,其结果值是一个带有正负号的整数值。如:datediff(day,'2004-09-01','2004-09-18')   --返回:1

DATEDIFF(year,'2010-12-13','2013-12-12')

返回 3

DATEDIFF(month,'2012-10-13','2012-12-12')返回2

DATEDIFF(day,'2012-12-10','2012-12-11')

返回:2

DATEDIFF(hour,'2012-12-13 10:10:00','2012-12-13 17:10:00')

返回: 7

DATEDIFF(minute,'2012-12-10 10:10:00','2012-12-10 10:22:00')

返回:12

DATEDIFF(second,'2012-12-10 10:22:00','2012-12-10 10:22:39')

返回:39

DATENAME()

DATENAME (<datepart> <date>)以字符串的形式返回日期的指定部分此部分。由datepart来指定。如:datename(weekday, '2004-10-15') --返回:星期五本年第多少周: datename(week,'2004-10-15')

DATENAME (weekday,’2012-12-13’)

返回:Thursday

DATENAME(week,'2012-12-13')

返回:50

DATEPART()

DATEPART (<datepart> <date>)以整数值的形式返回日期的指定部分。此部分由datepart来指定。

DATEPART (dd date)等同于DAY (date) DATEPART (mm date)等同于MONTH (date) DATEPART (yy date)等同于YEAR (date)如:DATEPART(month, '2004-10-15') --返回 10

GETDATE()

DATETIME 的缺省格式返回系统当前的日期和时间

Getdate() 返回当前时间

 自定义函数

用户自定义函数可以像系统函数一样在SELECT查询或其它程序(如存储过程、触发器等)中使用。定义方法: CREATE FUNCTION…(略)。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值