请问如何在SQLServer函数当中获取当前的时间....

ForumAngel 2003-09-19 05:04:31
-- =============================================
-- Create table function (TF)
-- =============================================
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = 'ADD_NEW_APPLICATION')
DROP FUNCTION ADD_NEW_APPLICATION
GO
CREATE FUNCTION ADD_NEW_APPLICATION(@intCustId int)

RETURNS Numeric
AS
BEGIN
Declare @numAppId Numeric
Select @numAppId = Seq_app_Id.NextVal
From Dual

Begin
Begin Tran
Insert Into WMS_APPLICATION (
APP_ID,CUST_ID,CREATE_TIME )
Values (
@numAppId,@intCustId,CURRENT_TIMESTAMP)
If @@Error <> 0
RollBack Tran
Else
Commit Tran
End
Return @numAppId;
End
以上是本人编写的函数,但是当我利用CURRENT_TIMESTAMP将当前时间插入到数据库当中的时候,老是提示Invalid use of 'getdate' within a function.请问该如何解决呢
...全文
903 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-09-19
  • 打赏
  • 举报
回复
不行,你这个必须改为过程。
tqqonline 2003-09-19
  • 打赏
  • 举报
回复
通过参数传递
icesnowe 2003-09-19
  • 打赏
  • 举报
回复
getdate()

:)多使用帮助文件,很好用的:)
sdhdy 2003-09-19
  • 打赏
  • 举报
回复
select getdate()
mjhnet 2003-09-19
  • 打赏
  • 举报
回复
或者建议你使用存储过程
zhbname 2003-09-19
  • 打赏
  • 举报
回复
可以通過存儲過程來實現:
如:exec storep @curtime ouput
cbzdream 2003-09-19
  • 打赏
  • 举报
回复
getdate()不允许在用户定义函数中使用
mjhnet 2003-09-19
  • 打赏
  • 举报
回复

函数中的有效语句类型包括:

DECLARE 语句,该语句可用于定义函数局部的数据变量和游标。


为函数局部对象赋值,如使用 SET 给标量和表局部变量赋值。


游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。不允许使用 FETCH 语句将数据返回到客户端。仅允许使用 FETCH 语句通过 INTO 子句给局部变量赋值。


控制流语句。


SELECT 语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。


INSERT、UPDATE 和 DELETE 语句,这些语句修改函数的局部 table 变量。


EXECUTE 语句,该语句调用扩展存储过程。
在查询中指定的函数的实际执行次数在优化器生成的执行计划间可能不同。示例为 WHERE 子句中的子查询唤醒调用的函数。子查询及其函数执行的次数会因优化器选择的访问路径而异。

用户定义函数中不允许使用会对每个调用返回不同数据的内置函数。用户定义函数中不允许使用以下内置函数:

@@CONNECTIONS
@@PACK_SENT
GETDATE
@@CPU_BUSY
@@PACKET_ERRORS
GetUTCDate
@@IDLE
@@TIMETICKS
NEWID
@@IO_BUSY
@@TOTAL_ERRORS
RAND
@@MAX_CONNECTIONS
@@TOTAL_READ
TEXTPTR
@@PACK_RECEIVED
@@TOTAL_WRITE
mjhnet 2003-09-19
  • 打赏
  • 举报
回复
getdate()不允许在用户定义函数中使用
可以考虑作为一个参数传入

dlkfth 2003-09-19
  • 打赏
  • 举报
回复
select getdate()
yujohny 2003-09-19
  • 打赏
  • 举报
回复
select CONVERT(varchar(10), getDate(),120) --不要时间2002-1-1
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05
伍子V5 2003-09-19
  • 打赏
  • 举报
回复
getdate()

34,874

社区成员

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

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