用户自定义函数里怎样调用getdate()?

bjzhanghao 2003-05-09 09:30:39
我的一个简单的函数如下:
CREATE FUNCTION isYesterdayCase (@dt datetime)
RETURNS int AS
BEGIN
declare @flag int
if(convert(varchar(10),@dt,120)=convert(varchar(10),getdate(),120))
set @flag=1
return (@flag)
END
系统提示“在函数里错误的使用了'getdate'”,应该怎样写呢?
...全文
43 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-05-10
  • 打赏
  • 举报
回复
你的fun改一下:

CREATE FUNCTION isYesterdayCase (@dt datetime)
RETURNS int AS
BEGIN
declare @flag int
if datediff(day,@dt,(select bjzhanghao from my_getdate))=0
set @flag=1
return (@flag)
END
pengdali 2003-05-10
  • 打赏
  • 举报
回复
可以!但麻烦:

create view my_getdate
as
select getdate() bjzhanghao
go

CREATE FUNCTION isYesterdayCase (@dt datetime)
RETURNS int AS
BEGIN
declare @flag int
if(convert(varchar(10),@dt,120)=convert(varchar(10),(select bjzhanghao from my_getdate),120))
set @flag=1
return (@flag)
END
erigido 2003-05-09
  • 打赏
  • 举报
回复
你用个变量过渡一下看看
bjzhanghao 2003-05-09
  • 打赏
  • 举报
回复
现在知道了:
“不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下:

@@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

34,590

社区成员

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

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