今天教大家如何使用儲存過程自動生成一張日曆表,我們以sql server為操作平台。
問題描述:輸入想要生成日曆的年份,呼叫儲存過程,即可生成該年的全部日曆。
建立表結構
create建立儲存過程table
calendar_info
( date_name
varchar(20) primary
key,
year
varchar(10
),
month
varchar(10
), week
varchar(10
),
dayvarchar(10
))
if呼叫儲存過程exists (select
*from sys.procedures where name =
'proc_calendar')
drop
proc
proc_calendar
gocreate
proc
proc_calendar
@year
intas
begin
declare
@iint
;
declare
@start_day
varchar(20
);
declare
@end_day
varchar(20
);
declare
@day_count
int;
declare
@today
datetime
;
set@i=0
--定義一年的開始日期,用concat函式將年份和月份日期拼接起來
set@start_day
=concat(@year,'
-01-01')
--定義一年的結束日期
set@end_day
=concat(@year
+1,'
-01-01')
--datediff函式計算日期的間隔天數
set@day_count
=datediff(day,@start_day,@end_day
)
--把@start_day轉成datetime,賦值給@today
set@today
=convert(datetime,@start_day
)
while
@i<
@day_count
begin
insert
into calendar_info values
(
convert(varchar(10),@today,23
),
str(@year
),
datename(month,@today
), --返回月份
datename(weekday,@today
), --返回星期幾
datename(day,@today
) --返回日期
)set@i=@i
+1set@today
=convert(char(10),dateadd(day,1,@today),23
) --天數加1
endend
儲存過程的應用
今天深入講了儲存過程和如何建立儲存過程 宣告新的結束符 delimiter 一 建立儲存過程 create procedure p1 select from t1 單條 create procedure p1 begin 流程控制結構 sql語句集合 end 二 引數的應用 1 in 輸入形參引數,...
mysql儲存過程應用 MySQL儲存過程使用解析
mysql儲存過程 儲存過程 stored procedure 是一種在資料庫中儲存複雜程式,以便外部程式呼叫的一種資料庫物件。目的是為了完成特定功能的sql語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數 需要時 來呼叫執行。說白了就是資料庫 sql語言層面的 封裝與重...
簡單的oracle儲存過程
1 oracle儲存過程以及 asp.net 中呼叫儲存過程,實現乙個簡單的登入功能,只是作為學習的,所以處理可能不太合理。在pl sql developer 中編寫儲存過程 新建procedures 乙個簡單的登入檢查儲存過程 如下 create or replace procedure user...