日期:2014-05-18  浏览次数:20582 次

一个存储过程参数的问题
我建立了一个存储过程:
--------------------输入当前日期存储过程
create procedure 当前日期 @now datetime=null
as
if @now is null
begin
select * from nowTime
return
end
else
begin
insert into nowTime values(@now)
select now as 当前日期 from nowTime
end
如果不带参数显示以前存储的时间,如果带参数(日期格式)则用参数更新。

问题:
如果这样使用:
当前日期 '2007-10-12 18:45:13.717'
运行没有问题。

我想输入系统的当前日期,使用 getdate()作为参数,所以这样使用:
当前日期 select getdate() 或者
当前日期 getdate()
都运行不成功,请问怎样把当前日期getdate()的值直接插进去?谢谢



------解决方案--------------------
declare @s datetime
set @s=getdate()

exec 当前日期 @s
------解决方案--------------------
可以啊

------解决方案--------------------
笨方法是再加一个参数
@n int 
@now datetime
......
if(@n=1)
begin 
insert into nowTime values(@now) 
select now as 当前日期 from nowTime 
end 
else
begin
insert into nowTime values(getDate()) 
select now as 当前日期 from nowTime 
end
------解决方案--------------------
前台输入的字符串由你去控制,想输系统日期就用
declare @s datetime 
set @s=getdate() 
exec 当前日期 @s

想输日期就
直接
exec 当前日期 '日期字符串'



------解决方案--------------------
也可以日期都在前台取,在前台取系统日期也很容易
给存储过程参数时,datetime和varchar都可以

------解决方案--------------------
create procedure 当前日期 @now datetime=null 
as 
if @now is null 
begin 
select * from nowTime 
return 
end 
else 
begin 
insert into nowTime values(getdate()) 
select now as 当前日期 from nowTime 
end