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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CYL785/article/details/52397831

客户有个要求是,每个项目要有开始时间和结束时间,在这个范围内,才能够报销费用。所以在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
展开阅读全文

没有更多推荐了,返回首页