SQLでdatetimeタイプ変数に値を割り当てます。

7189 ワード


タイトル:保存過程を使って、ある期間の各種図書の貸し出し人数を統計して、もし開始日を指定していないならば、以前の一ヶ月の当日を開始日として、もし締め切り日が指定されていないならば、当日をもって締め切り日とします。
 1 if exists(select * from sysobjects where name = 'usp_searchLendInfo')
2 drop procedure usp_searchLendInfo
3 go
4 create procedure usp_searchLendInfo
5 @startDate datetime = null,
6 @endDate datetime =null
7 as
8 set nocount on
9 declare @sDate datetime = dateadd(MONTH,-1,GETDATE()) --
10 declare @eDate datetime = getdate() --
11
12 --- null
13 if(@startDate is null and @endDate is null)
14 begin
15 set @startDate = @sDate
16 set @endDate = @eDate
17 end
18 else if(@startDate is null )
19 set @startDate = @sDate
20
21 else if(@endDate is null)
22 set @endDate = @eDate
23
24 print ' '+convert(varchar(15),@startDate)+' '+convert(varchar(15),@endDate)+' '
25 select bname , COUNT(*) from borrow inner join book
26 on Book.BID = Borrow.BID where lenddate > @startDate and willdate <@endDate group by bname
27 go
28 exec usp_searchLendInfo '2012-2-9','2012-4-9'