sql中的常见函数
一、stuff函数
Select stuff("abcdef",2,3,"ghijk")
go
结果:aghijkef
stuff的功能:删除指定长度的字符串并在指定的起始点插入另一组字符
二、datediff()
DATEDIFF(datepart,startdate,enddate)
起主要参数如上。datepart为年月日时分秒等后面两个就不用说了 ,懂一点英语都能看懂,现在主要介绍一下startdate,enddate的格式问题
如果是
print datediff(month,'2008/05/11','2008-04-15')、
print datediff(month,'2004.09.12 ','2008-06-15')、
print datediff(month,'20040912','2008-06-15')、
print datediff(month,'2004-09-12 11:06:08','2008-06-15')
都是可以得到数据的
这样的话是可以自动转化的得到结果。说明”/“/和“—”以及“.”可以由我们的msserver自动转化
三、convert()
1、CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。
由参数style可以知道此函数可以转化日期。涉及到很多格式,具体不细说,只举二个例子说说,其他的可以在网上自己查询
select CONVERT(varchar(12) , getdate(), 108 ) 得到当天的时间(时分秒格式)
20:49:40select CONVERT(varchar(12) , getdate(), 102 )
2011.07.152、convert(data_type(length),data_to_be_converted)
举个简单的例子print convert(char(5),'adfadfadfafd')得到的结果是adfad
再举个例子print CONVERT(varchar(30) , getdate(), 120 )得到的结果为:2011-07-15 21:02:29
select CONVERT(char(10),CONVERT(varchar(30) , getdate(), 120 ) ) 得到的结果为2011.07.15select CONVERT(char(10), 123 ) 得到的结果为'123'
由此可以知道convert有两种参数一个是两个的,一个是三个的
四、replace()
replace(string_expression,string_pattern,string_repalcement)
我们先 不看语法,但是你要知道有三个参数实践出真理:select replace('123456789', 1,'ab' ) 得到的结果为ab23456789在此有的会认为是第一个位置其实不是。是Msserver把整型自动转化成了字符型。 select replace('123556789', 4,'ab' )得到的结果为123556789 在此没有转化,是因为没有4这样的字符,所以不转化。注意与stuff的区分
五、dateadd()
DateAdd(interval, number, date)
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。 特别注意
select DateAdd("m", 1, '95-01-31') 得到的结果为1995-02-28 00:00:00.000一个是注意m是加的一个月,还有个是默认的会加一个时间
以上是个人观点,欢迎大家指正和讨论。