函数的问题,初学者的

xikboy 2007-02-28 11:25:32
create function tt (@tt varchar(5))
RETURNS varchar(5)
as
begin
set @tt=(select convert(varchar(5),dateadd(minute,rand()*60,'08:00'),14))
return(@tt)
end

会出现
服务器: 消息 443,级别 16,状态 1,过程 tt,行 5
在函数内不正确地使用了 'rand'。
...全文
215 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hometohome 2007-11-15
  • 打赏
  • 举报
回复
10楼的wangdehao已经说过了,rand()是不确定函数,自定义函数内不能使用不确定函数
xikboy 2007-03-05
  • 打赏
  • 举报
回复
就没人遇到过?
xikboy 2007-03-01
  • 打赏
  • 举报
回复
谁能帮我把整句写出,变量也是加面函数里啊,也是相同的错误!
wangdehao 2007-02-28
  • 打赏
  • 举报
回复
不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下:

@@CONNECTIONS @@TOTAL_ERRORS
@@CPU_BUSY @@TOTAL_READ
@@IDLE @@TOTAL_WRITE
@@IO_BUSY GETDATE
@@MAX_CONNECTIONS GETUTCDATE
@@PACK_RECEIVED NEWID
@@PACK_SENT RAND
@@PACKET_ERRORS TEXTPTR
@@TIMETICKS
rookie_one 2007-02-28
  • 打赏
  • 举报
回复
还真是没法通过,
还是加变量把~
hrb2008 2007-02-28
  • 打赏
  • 举报
回复
return不用换,看错了。我在本机测试通过
hrb2008 2007-02-28
  • 打赏
  • 举报
回复
create function tt (@tt varchar(5))
RETURNS varchar(5)
AS
BEGIN
SELECT @tt=CONVERT(VARCHAR(5),DATEADD(minute,ROUND(RAND()*60,0),'08:00'),14)
RETURN @tt
END
hrb2008 2007-02-28
  • 打赏
  • 举报
回复
return(@tt) 换成return:)
zouqiang122 2007-02-28
  • 打赏
  • 举报
回复
up
jacobsan 2007-02-28
  • 打赏
  • 举报
回复
把那个添加至提取出来,加个变量
declare @timetoadd int
set @timetoadd =round(rand()*60,0)
set @tt=(select convert(varchar(5),dateadd(minute,@timetoadd,'08:00'),14))
xikboy 2007-02-28
  • 打赏
  • 举报
回复
我这函数整个写得有错误吗?
xikboy 2007-02-28
  • 打赏
  • 举报
回复
也一样
jacobsan 2007-02-28
  • 打赏
  • 举报
回复
rand()*60改成round(rand()*60,0)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧