————ascii用于将第一个字符转换成相对应的ascii值
print ascii(‘乐’)
print ascii(‘秀’)
if ascii(‘乐乐’)>ascii(‘秀秀’)
begin
print ‘乐乐比秀秀大’
end
else
print ‘秀秀比乐乐大’
—————char把一个ASCII码转换成对应的字符
print char(‘97’)
——test
select * from Users where possword=’123456’
——————————replace——替换
print replace(‘你们喜欢的是xxx,传说xxx真是一个好人呀’,’xxx’,’嘉嘉’)
—————两个转换————-cast\convert————————-
declare @a varchar(50)
set @a=’20220308’
print cast(@a as date)
————————————————————————-
declare @b int
set @b=’100’
print ‘结果是:’+convert(varchar(10),@b)
—————————————-
declare @a datetime
set @a=getdate()
print convert(varchar(50),@a,120)
——————-利用循环输出A-Z大写字母及其现应的ASCII码值
declare @a int
set @a=65
while @a<91
begin
print char(@a) +’的ASCII码值是:’+cast(@a as varchar(20))
set @a=@a+1
end
select str (price,10,2)from Product order by Price asc
select Customername,len(Customername)as[length] from Customer
———————-日期相关的函数
print getdate()
print getutcdate()
————day,month,year—
declare @today datetime
set @today=getdate()
print @today
print year(@today)
print month(@today)
print day(@today)
—dateadd——-增减时间
print dateadd(dd,1,getdate())
print convert(varchar(50),dateadd(yyyy,-21,getdate()),120)
—datediff——-返回指定日期之间的部分
declare @birthday datetime
set @birthday=’2001-06-10’
print datediff (dd,@birthday,getdate())
—-你预计你能活到多少岁,你算算你还剩多少天?
declare @sr datetime
set @sr =’2101-06-10’
print datediff(dd,getdate(),@sr)
——-用户自定义函数UDF(标量函数、表值函数)—-
——-标量函数(返回其他)
—加法
create function myadd
(
@a int,
@b int
)
returns int
as
begin
return @a+@b
end
print [dbo].myadd
—————-我想看看指定的用户在当前系统中花费了多少钱?
create function GetMoneyByName
(
@name varchar(50)
)
returns money
as
begin
declare @total money
SELECT @total=sum(OrderDetails.Quantity*Product.Price)
FROM Customer INNER JOIN
Orders ON Customer.CustomerID = Orders.CustomerID INNER JOIN
OrderDetails ON Orders.OrderID = OrderDetails.OrderID INNER JOIN
Product ON OrderDetails.ProductID = Product.ProductID
WHERE (Customer.CustomerName=@name)
if @total is null
begin
return 0
end
return @total
end
print dbo.GetMoneyByName(‘小艾’)
create function days
(
@birthday datetime
)
returns int
as
begin
declare @time int,@deaday datetime,@day int
set @time=80
set @deaday=convert(varchar(50),dateadd(yy,@time,@birthday),120)
set @day=datediff(dd,getdate(),@deaday)
return @day
end
print dbo.days(‘2001-01-10’)
————表值函数(返回表)
————定义一个方法,获得所有address在‘武汉’的人的信息
create function GetCustomerFromAddress
(
@city varchar(50)
)
returns table
as
return selectfrom Customer where Address like ‘%’+@city+’%’
select from GetCustomerFromAddress(‘武汉’)
create function daydiff
(
@datea datetime,
@dateb datetime
)
returns varchar(50)
as
begin
if(@datea>@dateb)
begin
declare @datec datetime
set @datec=@datea
set @datea=@dateb
set @dateb=@datec
end
return cast(datediff(dd,@datea,@dateb)as varchar(50))+’天’
end
print dbo.daydiff(‘2001-01-10’,’2022-03-09’)
