SQL数据表批量插入日期值(datetime类型)

来源:互联网 发布:中穆助手软件 编辑:程序博客网 时间:2024/06/05 14:45

客户有个要求是,每个项目要有开始时间和结束时间,在这个范围内,才能够报销费用。所以在PROJECT 表中需要批量导入数据到PROJECT_BEGIN_DATE,PROJECT_END_DATE字段中。

如下图是客户给出的EXCEL表。


首先是整理Excel表,如下图所示。


在Excel表的D2处可以写这样的函数 =("INSERT into temp_time VALUES (N'"&A2&"', CAST('"&B2&"' AS DateTime), CAST('"&C2&"' AS DateTime));")  ,然后往下拉,就可以批量形成insert语句,到这里不知道什么原因,日期值格式变成数值格式了。


后来我想了个办法,把 - 或 / 都替换成//  ,如下所示。


将D列复制到记事本,再替换成/   


然后是创建临时表TEMP_TIME存放代码,开始时间,结束时间。TEMP_TIME 与PROJECT 有共同的字段code,这样就可以更新数据到PROJECT表

--创建临时表CREATE TABLE TEMP_TIME(code nvarchar(50) null,begintime datetime null,endtime datetime null)


执行上面的insert语句

然后将TEMP_TIME表更新到PROJECT表,语句如下。

UPDATE PROJECT SET PROJECT_BEGIN_TIME = TEMP_TIME.BEGINTIME, PROJECT_END_TIME = TEMP_TIME.ENDTIME FROM PROJECT INNER JOIN TEMP_TIME ON PROJECT_CODE = TEMP_TIME.CODE
0 0
原创粉丝点击