数据库常用函数的总结


--函数共有四个参数,其功能是将expression1_Str中自startIndex位置起删除lengthInt个字符,
--然后将expression2插入到expression1_Str中的startIndex位置。
Stuff(expression1_Str,startIndex,lengthInt,expression2_Str)
select stuff('aaa',1,0,'1224777')
select stuff('444',2,2,'8888')


--返回近的整数(判断总页数经常会用到它)
select ceiling(13*1.0/12) -- 2
select ceiling (12.1) --13
select ceiling(12*1.0 /12)--1

--用指定的符号将前面的字符括起来
select quotename('aaa','{')--{aaa}
select quotename('456','<')--<456>

--去掉字符串右边空格
select rtrim(' ss s  ')--' ss s'
select ltrim('      ww  ') --'ww  '
select ltrim(rtrim('  7896   s ')) --'7896   s'

--返回当前字符在后面字符串当中的下标
select charindex('s','458s')--4
select charindex('9','458s')--0

--前面的字符是否与后面的字符全匹配,如果匹配返回所以位置,
select patindex('ss','ssss');-- 0
select patindex('123','123') --1
select patindex('123ss','123') --0

--将小写字母转换为大写字母
select upper('sss')--SSS

--将大写字母转换为小写字母
select lower('AA双') -- aa双

--颠倒一组字符的顺序
select reverse('abcew') -- wecba
select reverse('123456789')--987654321


--将指定的字符替换中特定的字符
select replace('uioop','o','2') --ui22p
select replace('uioop','','2') --uioop

--返回指定长度的空白字符串
select space(9) --'         ' 长度为9空白字符
select space(3)--'   ' 长度为3的空白字符

--数据类型转换 cast(要进行转换的值 as 具体数据类型)
select cast(122+15 as numeric(12,1)), convert(varchar(10),getdate(),120)
select cast('a'+'b'as varchar(1)) --a
select cast('a'+'b'as varchar) --ab

--得到日期的年份
select year(getdate()) -- 2009
--得到日期的月份
select month(getdate()) -- 7
--返回日期的天
select day('2006-11-05')  --5

--两个日期之差有'年/月/日/时/分/秒'的差别
select datediff(year,'2004-02-18',getdate())--相差5年
select datediff(yy,'2004-02-18',getdate())--相差5年
--month m mm
select datediff(month,'2004-02-18',getdate())--相差65个月
select datediff(m,'2004-02-18',getdate())--相差65个月
select datediff(mm,'2004-02-18',getdate())--相差65个月
--day d y
select datediff(day,'2004-02-18',getdate())--相差1963天
select datediff(d,'2004-02-18',getdate())--相差1963天
select datediff(y,'2004-02-18',getdate())--相差1963天
--hour hh
select datediff(hour,'2004-02-08',getdate())--相差 47362 小时
select datediff(hh,'2004-02-08',getdate())--相差 47362 小时

-- minute mi
select datediff(minute,'2006-02-15 12:15:14','2006-02-15 12:28:24')--相差13分钟
select datediff(mi,'2006-02-15 12:15:14','2006-02-15 12:28:24')--相差13分钟

-- ss s
select datediff(ss,'2006-02-15 12:15:14','2006-02-15 12:16:24')--相差70秒
select datediff(s,'2006-02-15 12:15:14','2006-02-15 12:16:24')--相差70秒

select datediff(DAY,convert(datetime,'2006-02-05'),getdate())
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) -- 2009-01-01 00:00:00.000 本年的第一天
select DATEDIFF(YY,1,GETDATE())--109

--替换指定的字符串 :
--expression1_Str 参数
--char1 被替换的字符 (该字符可以在expression1_Str当中出现,也可以不出现)
--char2 要替换 char1的字符
--replace(expression1_Str,char1,char2)
select replace(convert(varchar(12),getdate(),23),N'-0',N'-')--2009-7-4

--结合cast datename dateparet返回形式为"2009年7月4日"的日期格式
select cast(cast(datename(yy,getdate()) as varchar)+'年'+cast(datepart(month,getdate()) as varchar)+'月'+cast(datename(day,getdate()) as varchar)+'日' as varchar) AS CurrDate

--判断传递的参数是否为正确的日期型
select isdate(getdate()) --1
select isdate('2006-29-15') --0
select isdate('2006-9-15') --1

--判断参数是否为NULL并进行处理,如果为NULL返回后面的参数,如果不为NULL则返回该参数
select isnull('123',1) -- 123
select isnull(null,1) --1

--判断该参数是否数字 是返回 1 不是数字返回 0
select isnumeric('-1236.14569') --1
select isnumeric('-123ssss6.14569') --0

--判断两个字符串是否相等,相等返回NULL,不相等则返回第一个参数的值
select nullif('123','123456') --123
select nullif('123','123') -- null

select cast('13' as decimal)

--这些函数不能执行
select int('14')
select datetime(getdate())
select find('11111','4')

select APP_NAME()
 --找出表TableName当中字段ColName的长度
--执行此语句时必须在该表所属 的数据库当中执行并用字段和表名都要正确
select col_length('TableName','ColName')--6

--(datalength)返回字符串的长度包括所有空格
--(Len)返回字符串的长度不包括后面空格

select datalength('123')--3
select Len('123')--3

select datalength(' 123 ')--5
select Len(' 123 ')--4

select datalength(N'123 ')--8
select Len(N' 123 ')--4

select datalength(N'123')--6
select Len(N'123')--3

 


select datalength(N'456 ') -- 8


select Len('123 ')--3
select
select Len(N'123 ')--3

select host_id()
select host_name()

select identity(int ,1,1) AS SN , Name, sex,folk
into #Temp
from (
 select '王兴如' As name,'男' As sex ,'汉族' AS folk
 union all
 select '刘渊源' As name,'女' As sex ,'土族' AS folk
 union
 select '马秀良' As name,'女' As sex ,'苗族' AS folk
   ) As c

select * from  #Temp
drop table #Temp

select newid()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值