2016-11-23 24 views
1

每隔10分钟我会从外部合作伙伴处获取一个.csv文件,我需要将其插入SQL数据库。我的目标是 我以后可以做一个报告,显示一个日期间隔的温度图,我可以看到温度为 是在x轴是时间,y轴是温度的那天。如何在从.csv文件批量插入期间修改数据

该文件包含:

UUID
日期
时间
温度

日期格式为YYYY-MM-DD和时间的格式为hh:mm:ss的。

如何在批量插入时连接日期和时间?

此外,温度是递减的,但是没有点的格式。例如271它应该是27.1

我可以在批量插入时更改吗?

BULK 
INSERT [dbo].[temp] 
FROM 'c:\input.csv' 
WITH 
(
FIRSTROW = 2, 
CODEPAGE = 'ACP', 
FIELDTERMINATOR = ';', 
ROWTERMINATOR = '\n' 
) 
GO 

或者我可以像插入数据那样,并在做报告时直观地“改变”它?

+1

你需要连接插入步骤吗?您可以在实际检索数据时进行格式设置。 –

+0

我同意Rich。如果您担心读取性能受到影响,请考虑使用启用了持久性的计算列。 – mohdowais

+0

不,我不必在插入步骤上连接,并更改温度。我只是认为这比在“报告层”上做起来容易。我是新来的报道。 – mgr33n

回答

0

首先将数据导入到数据库表中,然后根据需要更改数据。

为串连使用:

CAST(datecolumn as DATETIME) + CAST(timecolumn AS TIME) 

温度转换使用:

1.

Select Stuff(temperaturecolumn , Len(temperaturecolumn), 0, '.') 
    From yourTable 

或者

2.

select cast( cast(temperaturecolumn as decimal) /10 as decimal(4,2)) 
+0

谢谢,它在我的测试桌上效果很好。 – mgr33n

+0

最受欢迎的兄弟。 –