ALTER PROCEDURE [dbo].[kssq_sq_rq](@sqtqts int) AS
declare @i int,@j int
set @i=(select substring(kssj,1,(len(kssj)-3)) from kssq_csb)
set @j=(select  datepart(hh,getdate()))
if (@i>@j)
begin
if(datename(weekday,getdate())='星期六' or datename(weekday,getdate())='星期日' or datename(weekday,getdate())='星期一')
begin
if(datename(weekday,CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023))='星期六')
SELECT CONVERT(varchar(100),dateadd(day,@sqtqts+3,getdate()), 023) as rq
else if(datename(weekday,CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023))='星期日')
SELECT CONVERT(varchar(100),dateadd(day,@sqtqts+2,getdate()), 023) as rq
else if(datename(weekday,CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023))='星期一')
SELECT CONVERT(varchar(100),dateadd(day,@sqtqts+1,getdate()), 023) as rq
endSELECT CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023) as rq
end
else
begin
if(datename(weekday,getdate())='星期五' or datename(weekday,getdate())='星期六' or datename(weekday,getdate())='星期日')
begin
if(datename(weekday,CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023))='星期五')
SELECT CONVERT(varchar(100),dateadd(day,@sqtqts+3,CONVERT(varchar(100),dateadd(day,1,getdate()), 023)), 023) as rq
else if(datename(weekday,CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023))='星期六')
SELECT CONVERT(varchar(100),dateadd(day,@sqtqts+2,CONVERT(varchar(100),dateadd(day,1,getdate()), 023)), 023) as rq
else if(datename(weekday,CONVERT(varchar(100),dateadd(day,@sqtqts,getdate()), 023))='星期日')
SELECT CONVERT(varchar(100),dateadd(day,@sqtqts+1,CONVERT(varchar(100),dateadd(day,1,getdate()), 023)), 023) as rq
endSELECT CONVERT(varchar(100),dateadd(day,@sqtqts,CONVERT(varchar(100),dateadd(day,1,getdate()), 023)), 023) as rq
end

解决方案 »

  1.   

    代码要结合环境来理解,就直接写一代码,你看了直接晕,就像SQL回答题目一样,
      

  2.   

    你可以 SP_DEPENDS kssq_sq_rq 查一下哪些地方相关,或在分析器里查看相关性,了解用的地方
      

  3.   

    kssq_csb表里是什么内容?貌似是字符串截取后判断星期。
    然后根据不同的星期,然后不同的内容。
      

  4.   

    字段kssj应该是一个时间,表kssq_csb的功能不知道,不好说。
    这存储过程作用应该是根据传入的参数截取小时数与当小时比较,然后进行不同操作!
      

  5.   


    我觉得你可以看得懂,只是你的心理作用,一有困难就想到CSDN了。
    (提问的前提是你必须已经大概看下这段代码的意思,若其中有部分代码的语法看不懂再问)
    给你个建议吧!
    你可以一步一步的进行调式,每一步都 PRINT出来,看看到底输出的是什么数据,这样慢慢的就会懂了,越是看不懂就越要看,否则SQL编程的进步会很慢的。有点啰嗦,见怪了!
      

  6.   

    如下幾個關鍵字搞清可明白一大步.
    datename,
    CONVERT