sqlite数据库中批量插入时间数据 20

需求是这样的,每一天都可以被分为节假日(type代号为1),工作日(type代号为2)。节假日为这一年的第19周,第20周,23周,4周的每一天。现在我想用sql语句生成... 需求是这样的,每一天都可以被分为节假日(type代号为1),工作日(type代号为2)。节假日为这一年的第19周,第20周,23周,4周的每一天。现在我想用sql语句生成自动一年的。求大神帮忙。
表的结构如下。

插入完数据库之后的效果如下
展开
 我来答
兰洲之光
2012-07-04 · TA获得超过316个赞
知道答主
回答量:253
采纳率:0%
帮助的人:174万
展开全部
一步搞定!(其中tmp表为任何具有连续ID的超过366条记录的表,即从未删除记录的表)
drop table if exists a;
create table a as select date('now','start of year','+'||(rowid-1)||' day') date, (rowid-1)/7+1 type,(rowid-1)/7+1 week from tmp order by rowid limit 366;
update a set type=case type when 4 then 1 when 19 then 1 when 20 then 1 when 23 then 1 else 2 end;
追问
谢谢高手。希望大神能逐条解释一下这个SQL语句~
追答
呵呵,本次问题已经回答完毕
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
今至电子科技有限公司
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整... 点击进入详情页
本回答由今至电子科技有限公司提供
tim_spac
2012-07-09 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2012万
展开全部
[code=SQL]
drop table if exists tmp;
create table tmp (
id INTEGER NOT NULL PRIMARY KEY, v int);

insert into tmp (v) values (1);
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;
insert into tmp (v) select v from tmp;

drop table if exists a;
create table a as
select
date('now',
'start of year',
'+'||(rowid-1)||' day'
) date,
(rowid-1)%7 as weekday,
case (rowid-1)%7
when 0 then 2
when 6 then 2
else 1 end type
from tmp
order by rowid
limit 366;
[/code]
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式