sqlserver常见字符日期处理函数

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

Sqlserver常见字符串/日期处理函数
1:字符串比较函数
①:charindex(<’substring_expression’>,<expression>)
其中substring _expression 是所要查找的字符,expression 可为字符串也可为列名表达式。

如果没有发现子串,则返回值。

select charindex('弹弹堂',title)from news--每行title列里面‘弹弹堂’出现的位置
select charindex('异界逍遥','abcd异界逍遥')--结果:5
②:PATINDEX (<’%substring _expression%’>,<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(<character_expression1>,<start_ position>,<length>,<character_expression2>) 用另一子串替换字符串指定位置、长度的子串。

select STUFF('abcdefg',1, 2,'什么')--结果:什么cdefg
select STUFF(title,1, 2,'什么')from news where id<6--把每行title列的字符串从位置开始算起的个字符替换成‘什么’
②:REPLACE (<string_expression1>,<string_expression2>,<string_expression3>)
用string_expression3 替换在string_expression1 中的子串string_expression2(如果找不到string_expression2就原样输出string_expression1)。

select replace('C#.NET','.','and')--结果:C#andNET
③:SUBSTRING (<expression>,<starting_ position>,length)
返回从字符串左边第starting_ position 个字符起length个字符的部分。

select substring('C#.NET',1,2)--结果:C#
④:left(<character_expression>,<integer_expression>)
返回character_expression 左起integer_expression 个字符
right(<character_expression>,<integer_expression>)同理
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 (<expression> AS <data_ type>[ length ])
select1+'a'--错误:在数据库里面数字类型和字符类型的数据是无法做字符串连接的,要先把数字类型的转换一下
select cast(1 as varchar)+'a'--结果:1a
②:CONVERT (<data_ type>[ length ],<expression>,[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 (<datepart>,<number>,<date>)
返回指定日期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>,<date1>,<date2>)
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。

select datediff(day,'2004-09-01','2004-09-18')--结果:17
⑥:DA TENAME (<datepart>,<date>)
以字符串的形式返回日期的指定部分此部分。

由datepart 来指定。

SELECT datename(weekday,'2012-06-05')--结果:星期二
SELECT datename(dd,'2012-06-05')--结果:5
⑦:DA TEPART (<datepart>,<date>)
以整数值的形式返回日期的指定部分。

此部分由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():获取当前时间。

相关文档
最新文档