sqlserver常见字符日期处理函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Sqlserver常见字符串/日期处理函数

1:字符串比较函数

①:charindex(<’substring_expression’>,)

其中substring _expression 是所要查找的字符,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回值。

select charindex('弹弹堂',title)from news--每行title列里面‘弹弹堂’出现的位置

select charindex('异界逍遥','abcd异界逍遥')--结果:5

②:PATINDEX (<’%substring _expression%’>,)

定义和charindex相同,区别:PA TINDEX函数支持使用通配符,可以用在很多有变化的查找中。而CHARINDEX不可以

--匹配含有‘异界’的字符串

select patindex('%异界%','abcd异界逍遥')--结果:5

--匹配以‘异界’开头的字符串

select patindex('异界%','abcd异界逍遥')--结果:0

select patindex('异界%','异界逍遥')--结果:1

--匹配含有‘Bread’或‘bread’的字符串

select patindex('%[b,B]read%','eat bread Bread')--结果:5

2:字符串处理函数

①:STUFF() 用另一子串替换字符串指定位置、长度的子串。

select STUFF('abcdefg',1, 2,'什么')--结果:什么cdefg

select STUFF(title,1, 2,'什么')from news where id<6--把每行title列的字符串从位置开始算起的个字符替换成‘什么’

②:REPLACE ()

用string_expression3 替换在string_expression1 中的子串string_expression2(如果找不到string_expression2就原样输出string_expression1)。

select replace('C#.NET','.','and')--结果:C#andNET

③:SUBSTRING (,length)

返回从字符串左边第starting_ position 个字符起length个字符的部分。

select substring('C#.NET',1,2)--结果:C#

④:left()

返回character_expression 左起integer_expression 个字符

right()同理

select left('123456',3)--结果:123

⑤:LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

select lower('ddQAA')--结果:ddqaa

select upper('UUUlove')--结果:UUULOVE

3:去空格函数

LTRIM() 把字符串头部的空格去掉。

RTRIM() 把字符串尾部的空格去掉。

select ltrim(' abc')

select rtrim('abc ')

4:数据类型转换函数

①:CAST ( AS [ length ])

select1+'a'--错误:在数据库里面数字类型和字符类型的数据是无法做字符串连接的,要先把数字类型的转换一下

select cast(1 as varchar)+'a'--结果:1a

②:CONVERT ([ length ],,[style])

select convert(varchar(10),getdate(),120)--结果:2012-06-05

5:日期函数

①:day(date_expression):返回date_expression中的日期值

②:month(date_expression):返回date_expression中的月份值

③:year(date_expression):返回date_expression中的年份值

④:DA TEADD ()

返回指定日期date 加上指定的额外日期间隔number 产生的新日期。

select dateadd(month,2,'2004-10-15')--结果:-12-15 00:00:00.000

select dateadd(day,2,'2004-10-15')--结果:-10-17 00:00:00.000

⑤:DA TEDIFF ()

返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。

select datediff(day,'2004-09-01','2004-09-18')--结果:17

⑥:DA TENAME ()

以字符串的形式返回日期的指定部分此部分。由datepart 来指定。

SELECT datename(weekday,'2012-06-05')--结果:星期二

SELECT datename(dd,'2012-06-05')--结果:5

⑦:DA TEPART ()

以整数值的形式返回日期的指定部分。此部分由datepart 来指定。

DA TEPART (dd,date) 等同于DAY (date)

DA TEPART (mm,date) 等同于MONTH (date)

-DATEPART (yy,date) 等同于YEAR (date)

select datepart(dd,'2012-6-3')--结果:3

⑧:GETDATE():获取当前时间

相关文档
最新文档