☆字符串函数:
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()
用法 :
- 增加数据的时候
insert into stuinfo values(getdate())
- 默认约束 : 默认当前系统时间
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 | 秒 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~