加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 14:36:00 所属栏目:MsSql教程 来源:网络整理
导读:1: 字符串比较函数 ①:charindex(’substring_expression’ , expression) 其中 substring?_expression? 是所要查找的字符, expression? 可为字符串也可为列名表达式。如果没有发现子串,则返回值。 select ? charindex ( ' 弹弹堂 ' , title ) ? from ?n

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,'什么')?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',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(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中的年份值

④:DATEADD?(<datepart><number><date>)

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

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

select?dateadd(day,'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():获取当前时间

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读