ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

字符串函数和日期函数

2021-03-06 14:34:49  阅读:278  来源: 互联网

标签:函数 -- 日期 字符串 GETDATE select getdate


☆字符串函数:

len(字符串):

返回字符串的字符个数,不包括末尾的空格(1个汉字是1个字符)

   select len('SQL数据库')--6
   select len('SQL数据库   ')--6
   select len(' SQL 数据库')--8

datalength(字符串):

返回字符串的字节数,包括末尾的空格(1个汉字占2个字节)

   select datalength('SQL数据库')--9
   select datalength('SQL数据库 ')--10

charindex(字符串1,字符串2):

查找字符串1在字符串2中的起始下标位置,找不到就返回0

   charindex(字符串1,字符串2,start_position)

从start_position查找字符串1在字符串2中的起始下标位置

select charindex('你','这周日你有空吗?')--4
select charindex('鸭','大吉大利今晚吃鸡')--0
select charindex('你','这周日你有空吗?',3)--4
select charindex('你','这周日你有空吗?',5)--0

lower:转换小写

   select lower('SQL server数据库')

upper:转换大写

   select upper('sql server数据库')

ltrim:清除左边的空格

   select '          左边有空格'
   select ltrim('          左边有空格')

rtrim:清除右边的空格

   select rtrim('右边有空格           ')
   
   --消除一个字符串左右两边的空格
   select rtrim(LTRIM('        两边都有空格        '))

replace:替换字符串

replace(字符串,字符串1,字符串2)

  • 在字符串中,用字符串2替换字符串1
  • 如果在字符串中找不到字符串1,则不替换
--蓝瘦,香菇,本来今天高高兴兴->难受,想哭...
select REPLACE('蓝瘦,香菇,本来今天高高兴兴','蓝瘦,香菇','难受')

select replace('你妹的,今天排位赛5连跪了','你妹','**')

--删掉身份证中的0
select * from studentinfo
select REPLACE(stucard,'0','') from studentinfo

统计身份证中0出现的次数
select LEN(stucard)-len(REPLACE(stucard,'0','')) from studentinfo

stuff(字符串1,start,length,字符串2)

字符串1从start位置删除length个字符,并在start位置插入字符串2。

select stuff('abcdef',2,4,'hello')--ahellof
select stuff('hi,how are you ?',4,3,'who')--hi,who are you ?

select replace(stuff('good',2,2,'xx'),'oo','haha')--gxxd

截取字符串

left(字符串,n) :截取字符串左边n个字符

select left('abcdef',3)--abc

right(字符串,n) :截取字符串右边n个字符

select right('abcdef',3)--def

substring(字符串,开始位置,n) :从开始位置截取n个字符

select substring('10086@qq.com',1,5)--10086
select substring('10086@qq.com',7,6)--qq.com
select substring('10086@qq.com',-1,5)--100

☆日期函数:

getdate(): 返回当前系统时间

select getdate()
print getdate()

用法 :

  1. 增加数据的时候
  insert into stuinfo values(getdate())
  1. 默认约束 : 默认当前系统时间

dateadd(日期部分,要增加的值,日期): 加时间

--计算后天的日期
select DATEADD(dd,2,GETDATE())
--计算昨天的日期
select DATEADD(dd,-1,GETDATE())
--假设我们18个月之后毕业,计算毕业日期
select DATEADD(mm,18,GETDATE())
--假设拖堂10分钟,计算放学时间
select 
--查询每个员工的成年时间,已知出生日期
select DATEADD(YY,18,'出生日期')

datediff(日期部分,开始时间,结束时间): 求时间差

结束时间-开始时间

--距离元旦还有多少天
select datediff(dd,getdate(),'2020-1-1')

--距离下课还有多少分钟
select DATEDIFF(MI,GETDATE(),'2019-12-13 10:10')

--查询每个员工的实际年龄,已知出生日期
select DATEDIFF(YY,'2002-1-1',GETDATE())
--计算你从出生到现在一共活了多少天
select DATEDIFF(DD,'2001-7-7',GETDATE())
	
### datepart(日期部分,日期): 获取部分日期
--获得月份
select DATEPART(MM,GETDATE())

--查询发行时间在6月份的游戏
select * from games where DATEPART(MM,发行时间)=6
--查询本月发行的游戏
select * from games where DATEPART(MM,发行时间)=datepart(mm,GETDATE()) 

datename(日期部分,日期): 返回时间日期的单独部分字符串形式

--获取当前月份
select datename(mm,getdate())
--获取当前小时
select datename(hh,getdate())
--一年中的第几周
select datename(ww,getdate())
--星期几
select datename(dw,getdate()) --字符串形式
select datepart(dw,getdate()) --数字形式

日期部分:

代码词汇 意思
yy
mm
dd
ww 周(一年中的第几周)
dw 星期
hh 小时
mi 分钟
s

标签:函数,--,日期,字符串,GETDATE,select,getdate
来源: https://www.cnblogs.com/Alax-LJJ/p/14490574.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有