主题:存储过程中,如何设置时间类型参数的默认值??
傻瓜911
[专家分:150] 发布于 2006-09-10 11:46:00
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个回复)
沙发
kkzjk [专家分:440] 发布于 2006-09-10 12:18:00
CREATE PROCEDURE proc_tongji
(@username VARCHAR(20) = null,@ip VARCHAR(20) = null,
@end_date datetime = null)
AS
set @end_date=getdate()
..........
试试。。。
板凳
233238447 [专家分:1350] 发布于 2006-09-10 12:20:00
为什么要先等于NULL??
3 楼
傻瓜911 [专家分:150] 发布于 2006-09-10 12:35:00
2 楼的 有点问题,当只输入两个参数时候出错! 1楼方法可行!
4 楼
233238447 [专家分:1350] 发布于 2006-09-10 12:37:00
知道了,getdate 这个如果后面不加() 系统不会当它是个函数来处理,虽然编绎可以通过!
又学到了一点,谢谢!
5 楼
kkzjk [专家分:440] 发布于 2006-09-10 12:42:00
存储过程传递参数要先赋初值。。。
声明了3个参数肯定要传递3个参数咯。
6 楼
cqx0510 [专家分:0] 发布于 2008-03-11 15:36:00
CREATE PROCEDURE proc_tongji
@username VARCHAR(20),
@ip VARCHAR(20),
@end_date datetime = ''
AS
if (@end_date='')
select @end_date=getdate()
我是这样子写的。
我来回复