sqlserver2k存储过程中定义时间变量

我想建立这样一个存储过程。
定义一个变量,值是当前系统时间,格式为yyyy-mm-dd
紧接着后面是对于大于这个时间的记录进行更新。

我不知道如何定义这个时间变量?

CREATE PROCEDURE pro_test
--时间变量的定义,比如名字叫@myday
AS
update mytable set status = 1 where day>@myday
GO

初次接触存储过程,以上代码本身也可能有错误,一并求教!
1楼,感谢你。
不过我的问题关键在于,myday如何获得当前的系统时间。

存储过程里参数的默认值不能使用函数,所以不能在存储过程里直接把参数的默认值设置为当前系统时间,不过可以在存储过程里赋值。还有一点疑问,既然@myday是当前系统时间了,为什么还要做成参数呢?

CREATE PROCEDURE pro_test
@myday char(10)
AS
set @myday=convert(char(10),getdate(),21)
update mytable set status = 1 where day>@myday
GO

@myday不为参数时可以这么写
CREATE PROCEDURE pro_test
AS
declare @myday char(10)
set @myday=convert(char(10),getdate(),21)
update mytable set status = 1 where day>@myday
GO
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-12
直接这样写咯。
CREATE PROCEDURE pro_test

AS
update mytable set status = 1 where day>getdate()
GO
第2个回答  2009-04-12
@myday DateTime

或者

@myday nchar(50)

update mytable set status = 1 where day > CONVERT(DATETIME,@myday,120)

sqlserver2k存储过程中定义时间变量
存储过程里参数的默认值不能使用函数,所以不能在存储过程里直接把参数的默认值设置为当前系统时间,不过可以在存储过程里赋值。还有一点疑问,既然@myday是当前系统时间了,为什么还要做成参数呢?CREATE PROCEDURE pro_test myday char(10)AS set @myday=convert(char(10),getdate(),21)update mytab...

如何给sqlserver 存储过程中的变量赋值?
你有存储过程定义如下 create procedure some_procedure @var1 int,@var2 int 传值时 exec some_procedure 100,100或者 exec some_procedure @var1=100,@var2=100

SqlServer中写的存储过程,用exec调用后说必须声明标量变量 "@PageCo...
在调用存储过程时,你用了两个变量,这两个变量都没有定义 你在调用之前必须使用 Declare 语句声明这两个变量

SQLSERVER 存储过程中 赋值时出错 提示:必须声明标量变量
存储过程代码也不贴出来,怎么帮你分析呢?一般出现这种问题的原因是变量没有事先定义就直接赋值,或者语法不对,用set还是select是有讲究的,建议把代码贴出来看看

sqlserver 存储过程要传时间的值 我要取1年的数据 怎么实现啊?_百度...
提问模糊,代码不完整并且有明显错误,没法准确回答你的问题。mssql有很多日期时间类型函数可以使用,你需要1年数据,那么根据你execute的存储过程的参数要求,计算和拼接时间字符串就可以了,但格式从代码中看不出。GETDATE() --获取当前日期时间DATEADD(year,-1,GETDATE()) --获取1年前的时间 ...

sqlserver存储过程: Exec(@变量)在一个存储过程中调用如何有参数返回...
set nocount on go create proc proc_find_count column_name varchar(20),term varchar(20)as declare @sel varchar(500)set @sel = 'select count(*) from product where '+@column_name+' like ''%'+@term+'%'''Exec(@sel)go declare @count varchar(20)exec proc_find_count 'p_...

SQLServer中的存储过程中declare的问题
用declare声明的变量是局部变量是自己定义的,不用declare声明的变量是全局变量,是系统中已经有的,直接拿来使用就可以了。

在SQL Server数据库中 存储过程是什么,希望给点例题
create proc proc_test \/\/创建过程 aid int \/\/定义一个参数(默认为in参数)as declare @atime datetime \/\/定义一个变量用于接收返回值(游标在这里定义)begin select @atime=atime from a where aid=@aid \/\/select @xxx=xxx from是给变量赋值、也是sql语句的符合条件值 print @atime \/\/print方法...

如何在sqlserver存储过程中输出参数,语句是什么,我不用输出参数,我只是...
在定义时定义一个ouput参数,如以下存储过程根据时间产生一个唯一ID CREATE PROCEDURE [getid](@id char(17) OUTPUT)--产生唯一码 AS DECLARE @a datetime select @a=getdate()DECLARE @time1 char(10)DECLARE @time2 char(10)DECLARE @time3 char(10)DECLARE @time4 char(10)DECLARE @time...

PostgreSQL存储过程转换SQLServer的
因sql server2000中不允许调用当前时间的函数getdate(),也不允许非表变量之外的update、insert、delete操作,故这里修改为存储过程,其中原来的return值改用输出参数"@Result int output"来实现,具体如下:CREATE PROCEDURE web_login(@web_username varchar(50), @web_pwd varchar(50), @web_ip ...

相似回答