平时工做中,一些初学开发的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()