SQL Server常用的字符串/日期/系统函数

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
平时工作中,一些初学开发的developer朋友经常会发消息问SQL Server中的某某函数怎么用,大部分都是日期和字符串的,总结如下,没有总结的,可以直接查SQL Server的帮助文档,方便快捷。
--字符串函数 

--1,len和datalength函数 
declare @a  varchar(50),@b  char(30) 
select @a =  '成都cd',@b= 'gocean' 
--select @a as 姓名 
print @a 
print  len(@a) 
print  datalength(@a) 
print @b 
print  len(@b) 
print  datalength(@b) 

--2,substring,right,left 
declare @a  varchar(50) 
set @a =  'microsoft' 
print  substring(@a,2,3) 
print  right(@a,4) 
print  left(@a,5) 

--3,trim,rtrimm,ltrim 
declare @a  nvarchar(30),@b  nchar(30) 
set @a =  '     dog' 
set @b =  '     dog' 
print  len(@a) 
print  rtrim(@a) 
print  ltrim(@a) 
print  len( rtrim(@a)) 
print  len( ltrim(@a)) 
print  datalength(@a) 
print  datalength(@b) 

--char varchar 在存储英文字符和数字的时候都按一个字节存储 


--4,ascii,char 
declare @a  varchar(10),@b  int 
set @a =  'abc' 
set @b = 48  -- 0-9 :48-57, a-z:97-122 
print  ascii(@a)  --返回字符串表达式中最左侧的字符的ASCII码值 
--print ascii(@a) + '12' 
--print ascii(SUBSTRING(@a,len(@a),1)) 
--print ascii(right(@a,1)) 
print  char(@b)   --将整型的ASCII码值转换为字符 

--5,nchar,unicode 
declare @a  nvarchar(10),@b  int 
set @a =  'xyz' 
set @b = 49  -- 0-9 :48-57, a-z:97-122 
print  unicode(@a)  --返回字符串表达式中最左侧的字符的unicode码值 
print  nchar(@b)   --将整型的unicode码值转换为字符 

--6,lower upper 
declare @a  varchar(20),@b  char(30) 
set @a =  'micRosofT' 
set @b =  'MicroSoFt' 
print @a 
print  lower(@a) 
print @b 
print  upper(@b) 


--7,charindex 返回字符串中制定表达式的开始位置 
select  '开始位置' =  charindex( '计算机', '成都金海洋计算机科技发展有限公司'
--select charindex('计算机','成都金海洋计算机科技发展有限公司') 开始位置 
declare @strIndex  varchar(20) 
set @strIndex =  '成都金海洋计算机科技发展有限公司' 
select  charindex( '计算机',@strIndex) 开始位置1, charindex( '计算机', '成都金海洋计算机科技发展有限公司') 开始位置2 

--8,space(返回重复的空格组成的字符串), replicate(以指定的次数重复表达式) 
select  replicate( '*',10), space(10), replicate( 'SQL Server',2), space(10), replicate( '*',10) 
print  replicate( '*',10) +  space(10) +  replicate( 'SQL Server',2) +  space(10) +  replicate( '*',10) 

--9,reverse 反转字符串 
declare @a  varchar(30) 
set @a =  'Microsoft' 
print @a 
print  reverse(@a) 

--10,stuff 替换字符串 
declare @a  varchar(50) 
set @a =  '你好,四川' 
print  stuff(@a,4,1, '成都'
print  stuff(@a,4,2, '成都'
print  stuff(@a,4,5, '成都'

--11,replace 
select  replace( '我想去中国', '中国', '成都'as 目的地 

--12,quotename 
select  quotename( 'hello', '{}'
select  quotename( 'hello', '[]'
select  quotename( 'hello'

--13, str(浮点表达式,[长度,[小数]])    其中长度包括小数点,符号,数字和空格,长度默认值为10,小数默认位数为0 
declare @a  int,@b  decimal(4,2) 
set @a = 25 
set @b = 36.59 
--print @b 
print  str(@a, len( cast(@a  as  varchar(30)))) 
--print str(@a,len(cast(@a as varchar(30))),0) 
print  str(@b,5,2) 
print  len( str(@a)) 
print  len( str(@b,5,2)) 


--日期函数 

--1,getdate year,month,day 
select  getdate(), year( getdate()), month( getdate()), day( getdate()) 
    
--2,datediff    返回值为integer类型 
select  'gocean的年龄是:' +  cast( datediff(yy, '1996/10/03', getdate())  as  char(2)) +  '岁'  as 信息  --根据生日取多少岁 
select  datediff(yy, '1982/11/23', getdate()) 
select  datediff(mm, '1982/11/23', getdate()) 
select  datediff(dd, '1982/11/23', getdate()) 

--3,datename 
print  datename(yy, getdate()) --年 
print  datename(mm, getdate()) --月 
print  datename(dd, getdate()) --日 

print  datename(hh, getdate()) --时 
print  datename(mi, getdate()) --分 --print datename(n,getdate()) 
print  datename(ss, getdate()) --秒 
print  datename(ms, getdate()) --毫秒    
print  datename(hhmmss, getdate()) 

Select  CONVERT( varchar(100),  GETDATE(), 24) --取日期 
Select  CONVERT( varchar(100),  GETDATE(), 23) --取时间 
--1900-01-01 02:30:00.000 

Select  cast( '15:30'  as  datetime--自动加上1900-01-01 
Select  len( CONVERT( varchar(100),  cast( '1900-01-01 02:30:00.000'  as  datetime), 24))  --长度 
Select  CONVERT( varchar(100),  cast( '1900-01-01 02:30:00.000'  as  datetime), 24)  --取日期 
select  CONVERT( varchar(10),  getdate(), 120) --取日期 

select  cast( '1900-01-01 02:30:31.000'  as  smalldatetime--smalldatetime精确到1分钟,大于等于30秒,向分钟进1分钟,小于30秒舍去 


print  datename(w, getdate()) --星期几 
print  datename(dw, getdate()) --星期几 
print  datename(ww, getdate())  --当前年的第多少周 


print  datename(qq, getdate()) -- 刻钟 
print  datename(y, getdate())  -- 当前年的第多少天 
print  datename(dy, getdate())  --当前年的第多少天 



--4,datepart 
print  datepart(yy, getdate()) --年 
print  datepart(mm, getdate()) --月 
print  datepart(dd, getdate()) --日 

print  datepart(hh, getdate()) --时 
print  datepart(mi, getdate()) --分 --print datepart(n,getdate()) 
print  datepart(ss, getdate()) --秒 
print  datepart(ms, getdate()) --毫秒    

print  datepart(w, getdate()) --星期几 
print  datepart(dw, getdate()) --星期几 
print  datepart(ww, getdate())  --当前年的第多少周 


print  datepart(qq, getdate()) -- 刻钟 
print  datepart(y, getdate())  -- 当前年的第多少天 
print  datepart(dy, getdate())  --当前年的第多少天 


--系统综合函数 
select  newid(),host_id(), host_name(), user_name() 
--版本查询 
select @@version 
select @@version,@@servername,@@servicename,@@language,@@max_connections 
SELECT     SERVERPROPERTY( 'productversion'),  SERVERPROPERTY ( 'productlevel'),  SERVERPROPERTY ( 'edition'


declare @a  varchar(30) 
set @a =  '1241242' 
declare @b  int 
set @b =  convert( int,@a) 
--set @b = cast(@a as int) 
print @b 



--数学函数 
print  pi() 
print  power(2,3) 
print  sin(30* pi()/180) 
print  abs(-20) 
print  sqrt(2) 
print  sqrt(9) 
print  rand() 
















本文转自terryli51CTO博客,原文链接:http://blog.51cto.com/terryli/684362 ,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1天前
|
SQL 关系型数据库 MySQL
SQL脚本字符串替换
【5月更文挑战第3天】
11 4
|
1天前
|
SQL 存储 数据库连接
LabVIEW与SQL Server 2919 Express通讯
LabVIEW与SQL Server 2919 Express通讯
|
2天前
|
SQL Windows
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
12 4
|
3天前
|
SQL 数据可视化 Oracle
这篇文章教会你:从 SQL Server 移植到 DM(上)
这篇文章教会你:从 SQL Server 移植到 DM(上)
|
3天前
|
SQL 关系型数据库 数据库
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
|
3天前
|
SQL 存储 网络协议
SQL Server详细使用教程
SQL Server详细使用教程
23 2
|
3天前
|
SQL 存储 数据库连接
C#SQL Server数据库基本操作(增、删、改、查)
C#SQL Server数据库基本操作(增、删、改、查)
7 0
|
3天前
|
SQL 存储 小程序
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
|
4天前
|
XML 数据格式
【sqlserver】带分隔符字符串和多行互相转化
【sqlserver】带分隔符字符串和多行互相转化
14 0
|
4天前
|
SQL 存储 关系型数据库
SQL Server详细使用教程及常见问题解决
SQL Server详细使用教程及常见问题解决