碰到这样一个关于sql操作的面试题,不会,汗,回来马上请教群友。感谢江锋等人热情的帮助。现贴出题目和代码。
1、创建一个数据库,必须要有个时间类型的字段,其他不限;
2、根据上述数据库建立一个存储过程,将某一时间内的所有日期(以天为单位)插入到表的时间字段中;
3、有出错提示;
4、返回的是上述插入的记录集合。
我的想法很弱智,就不说了,怕丢人,还是贴上江锋给我的代码吧:
- create database test;
- use test;
- go
- create table test
- (
- id int identity,
- date datetime
- )
- create proc proc_Date
- @begintime datetime,
- @endtime datetime
- as
- if(@begintime > @endtime)
- begin
- raiserror('起始时间需小于结束时间!',16,1) --错误提示
- return
- end
- else
- begin
- set dateformat ymd;
- declare @i datetime;
- set @i = @begintime;
- while @i<= @endtime
- begin
- insert into test values(@i);
- set @i = DATEADD(day, 1, @i);
- end
- select * from test where date>@begintime and date<@endtime;
- return select * from test where date>@begintime and date<@endtime;
- end
- drop proc proc_Date;
- exec proc_Date '1998/11/21','1998/11/25'
再次感谢江锋。