在mssql里的FUNCTION用系统函数getdate()出错

funboy88 2003-07-07 09:30:24
CREATE FUNCTION dbo.aa
(
)
RETURNS datetime
AS
BEGIN

return dbo.getdate()
END


我在查询分析器里执行
print dbo.aa()
出错,
服务器: 消息 208,级别 16,状态 1,过程 aa,行 8
Invalid object name 'dbo.getdate'.


应该在函数里调用系统函数,应该如何调用
...全文
229 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
funboy88 2003-07-07
  • 打赏
  • 举报
回复
调用一个当前时间不会这么麻烦吧,
MSSQL怎么TMD呀
pengdali 2003-07-07
  • 打赏
  • 举报
回复
1、
create view my_getdate
as
select getdate() mydate


2、
CREATE FUNCTION dbo.aa
(
)
RETURNS datetime
AS
BEGIN
return (select mydate from mygetdate)
END
CrazyFor 2003-07-07
  • 打赏
  • 举报
回复
摘:

有时为了方便,
有些语句是不方便通过存储过程来完成。
但函数又不能访问诸如getdate(),@@spid等结果不确认的内置函数。

本人提供一变通解决方法,以getdate为例,通过视图来解决这个问题:
---------------------------------------------------------------
create view v_getdate
as
select * from (select cast(getdate() as datetime) as output) as a
go
---------------------------------------------------------------
create function f_getdate()
returns datetime
as
begin
declare @n datetime
select @n = output from v_getdate
return(@n)
end
go
---------------------------------------------------------------

调用:select dbo.f_getdate()

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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