ALTER PROCEDURE [dbo].[Courses_SelectCoursesInfoByCoursesFilter]
@startTime datetime,@endTime datetime=select convert(varchar(10),dateadd(year,1,getdate()),120),@coursesGrade varchar(3)
AS这样写要报错
@endTime datetime=convert(varchar(10),dateadd(year,1,getdate()),120),
这样写依然报错求解!

解决方案 »

  1.   

    ALTER PROCEDURE [dbo].[Courses_SelectCoursesInfoByCoursesFilter]
    @startTime datetime null,@endTime datetime null@coursesGrade varchar(3)
    AS
    if @endTime is null
    set @endTime =select convert(varchar(10),dateadd(year,1,getdate()),120)
      

  2.   


    alter proc [Courses_SelectCoursesInfoByCoursesFilter]
    (
    @endTime datetime=null--convert(varchar(10),dateadd(year,1,getdate()),120)
    )
    as
    begin
    select @endTime
    end可以默认为null
      

  3.   

    ALTER PROCEDURE [dbo].[Courses_SelectCoursesInfoByCoursesFilter]
    @startTime datetime,
    @endTime datetime,
    @coursesGrade varchar(3),
    @schoolRegionId int,
    @cityRegionId int
    ASBEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;    -- Insert statements for procedure here
    if @endTime is null
    set @endTime =select convert(varchar(10),dateadd(year,1,getdate()),120)
    SELECT     dbo.Courses.coursesClassified, COUNT(dbo.Courses.coursesClassified) AS countPeriod, SUM(dbo.Courses.singleHour) AS sumPeriod, 
                          dbo.CoursesInfo.startTime, dbo.CoursesInfo.endTime, dbo.CoursesInfo.consultant, dbo.CoursesInfo.hourCharge, dbo.CoursesInfo.cityRegionId, 
                          dbo.SchoolRegion.schoolDescription, dbo.CoursesInfo.schoolRegionId, dbo.CoursesInfo.coureseGrade
    FROM         dbo.Courses INNER JOIN
                          dbo.CoursesInfo ON dbo.Courses.coursesClassified = dbo.CoursesInfo.coursesClassified INNER JOIN
                          dbo.SchoolRegion ON dbo.CoursesInfo.schoolRegionId = dbo.SchoolRegion.id
    where CONVERT(varchar(10), Courses.singleTime, 120 ) between @startTime and @endTime
    and dbo.CoursesInfo.coureseGrade like @coursesGrade
    and dbo.CoursesInfo.schoolRegionId like @schoolRegionId
    and dbo.CoursesInfo.cityRegionId=@cityRegionId
    GROUP BY dbo.Courses.coursesClassified, dbo.CoursesInfo.startTime, dbo.CoursesInfo.endTime, dbo.CoursesInfo.consultant, dbo.CoursesInfo.hourCharge, 
                          dbo.CoursesInfo.cityRegionId, dbo.SchoolRegion.schoolDescription, dbo.CoursesInfo.schoolRegionId, dbo.CoursesInfo.coureseGrade
    END
    1楼的大哥不对啊
      

  4.   

    消息 156,级别 15,状态 1,过程 Courses_SelectCoursesInfoByCoursesFilter,第 23 行
    关键字 'select' 附近有语法错误。
      

  5.   

    alter PROCEDURE [dbo].[Courses_SelectCoursesInfoByCoursesFilter]
    @startTime datetime = null ,
    @endTime datetime  = null
    ASBEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;    -- Insert statements for procedure here
    if @endTime is null
    set @endTime = convert(varchar(10),dateadd(year,1,getdate()),120)
    endexec [Courses_SelectCoursesInfoByCoursesFilter] null,null
      

  6.   

    默认值只能是常数或 NULL
    可以这样定义
    ALTER PROCEDURE [dbo].[Courses_SelectCoursesInfoByCoursesFilter]
    @startTime datetime,@endTime datetime=NULL,@coursesGrade varchar(3)
    AS
     SET @endTime=isnull(@endtime,convert(varchar(10),dateadd(year,1,getdate()),120));
     ... ...
    GO
      

  7.   

    set @endTime =(select convert(varchar(10),dateadd(year,1,getdate()),120))--再加个括号
    --或者
    select @endTime=convert(varchar(10),dateadd(year,1,getdate()),120)