回 帖 发 新 帖 刷新版面

主题:存储过程中,如何设置时间类型参数的默认值??

CREATE  PROCEDURE proc_tongji
    @username VARCHAR(20),
    @ip VARCHAR(20),
    @end_date datetime = 2000-00-00 00:00:00

     AS 
……  

我想给 @end_date  一个默认的时间值,但是总是编译不过 ,@end_date datetime = getdate() 也出错,应该怎么样给 时间类型的参数设置 默认值呢(我主要想让这个时间类型默认是系统的当前时间)

回复列表 (共6个回复)

沙发

CREATE  PROCEDURE proc_tongji
    (@username VARCHAR(20) = null,@ip VARCHAR(20) = null,
 @end_date datetime = null)
 AS 
set @end_date=getdate()
..........
试试。。。

板凳

为什么要先等于NULL??

3 楼

2 楼的 有点问题,当只输入两个参数时候出错! 1楼方法可行!

4 楼

知道了,getdate 这个如果后面不加() 系统不会当它是个函数来处理,虽然编绎可以通过!
又学到了一点,谢谢!

5 楼

存储过程传递参数要先赋初值。。。

声明了3个参数肯定要传递3个参数咯。

6 楼


CREATE  PROCEDURE proc_tongji
    @username VARCHAR(20),
    @ip VARCHAR(20),
    @end_date datetime = ''
AS 
    if (@end_date='')
    select @end_date=getdate()

我是这样子写的。
 

我来回复

您尚未登录,请登录后再回复。点此登录或注册