2016-11-23 28 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

最受歡迎的兄弟。 –