要写一条SQL语句或者存储过程插入日期,也就是第个月每天的日期。

表与结构格式如下:表calendar列c_date存入格式:2011041920110420201104212011042220110423……每个月都以实际的天数插入,... 表与结构格式如下: 表calendar 列c_date

存入格式:
20110419
20110420
20110421
20110422
20110423
……
每个月都以实际的天数插入,插入是时间从20110427 到 20150427
急求!!!
表里就有一列c_date 数据类型为int
展开
 我来答
情又独中
2012-10-11 · TA获得超过1032个赞
知道小有建树答主
回答量:1220
采纳率:100%
帮助的人:830万
展开全部
建一个存储过程
在里面写个循环就行了
datetime := 20120407--起点值
while datetime<20150428 loop --截止时间
sqlstr='insert into calendar(c_date) values('||datetime||')';
execute immediate sqlstr;
datetime=to_char(to_date(datetime,'yyyymmdd')+1,'yyyymmdd');--取下一天
end loop;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-08-14
展开全部
Create proc uspTestDateInsert
@startDate datetime
,@endDate datetime
as
begin
while(@startDate<=@enddate)
begin
insert into dbo.calendar (c_date) values
(Convert(bigint,CONVERT(char(8),@startDate,112)))

set @startDate=DATEADD(day,1,@startdate)
end
end

--exec uspTestDateInsert '2009-02-12','2009-03-01'
select* from calendar
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nggno1
2012-10-10 · TA获得超过351个赞
知道小有建树答主
回答量:768
采纳率:0%
帮助的人:420万
展开全部
这个可能需要区分数据库种类
DB2实现:
BEGIN
DECLARE V_DATE DATE;
V_DATE = DATE('2011-04-27');

WHILE(V_DATE >= DATE('2011-04-27') AND V_DATE < DATE('2015-04-27'))

DO

INSERT INTO calendar (c_date) VALUES(DECIMAL(V_DATE));

SET V_DATE = V_DATE + 1 DAY;

END WHILE;
END
更多追问追答
追问
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= DATE(`2011-04-27`);
WHILE(V_DATE >= DATE('2011-04-27') AND V_DATE <' at line 4
追答
mysql中函数和存储过程的调用方式可能都与DB2不同,
语句的意思就是先定义一个date变量
然后赋值为('2011-04-27')的日期,
如果日期是在从20110427 到 20150427
那么插入日期信息并将日期+1天
具体函数和数据操作方式请自行转换为mysql格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bxfc
2012-10-12 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:684万
展开全部
Create proc uspTestDateInsert
@startDate datetime
,@endDate datetime
as
begin
while(@startDate<=@enddate)
begin
insert into dbo.calendar (c_date) values
(Convert(bigint,CONVERT(char(8),@startDate,112)))

set @startDate=DATEADD(day,1,@startdate)
end
end

--exec uspTestDateInsert '2009-02-12','2009-03-01'
select* from calendar
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我又强力了
2012-10-11 · TA获得超过802个赞
知道小有建树答主
回答量:1058
采纳率:0%
帮助的人:716万
展开全部
输入变量为 月份 4位
变量1 月初
变量2 月末
将 月初,月末 变成数字类型
插入 当 值大于 月初,小于月末的时候插入
更多追问追答
追问
能不能写出来
追答
你用的是什么数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式