客户有个要求是,每个项目要有开始时间和结束时间,在这个范围内,才能够报销费用。所以在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
为满足客户项目报销需求,需要在PROJECT表中批量导入开始时间(PROJECT_BEGIN_DATE)和结束时间(PROJECT_END_DATE)。通过整理Excel表并使用公式生成批量INSERT语句,但在处理日期格式时遇到问题。解决方法是用函数转换日期格式,并在记事本中替换特殊字符。创建临时表TEMP_TIME,通过共享字段更新PROJECT表。

3万+

被折叠的 条评论
为什么被折叠?



