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

1:字符串比较函数

①:charindex(<’substring_expression’><expression>)

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

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

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

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

定义和charindex相同,区别:PATINDEX函数支持使用通配符,可以用在很多有变化的查找中。而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 ])

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

select cast(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中的年份值

④:DATEADD (<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

⑤:DATEDIFF (<datepart><date1><date2>)

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

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

⑥:DATENAME (<datepart><date>)

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

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

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

⑦:DATEPART (<datepart><date>)

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

DATEPART (dddate) 等同于DAY (date)

DATEPART (mmdate) 等同于MONTH (date)

-DATEPART (yydate) 等同于YEAR (date)

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值