2016-11-07 153 views
0

我遇到問題,Excel中的「首選日期」格式不同,一旦導入到SQL Server中,一些將更改爲NULL。所以我想在Excel中將格式統一爲列F,如下所示。SQL Server:將Excel導入到SQL Server時,日期格式更改爲nvchar

事情是甚至格式已經更改爲EXCEL列F中的「日期」,此列在導入SQL SERVER後仍顯示爲「nvarchar」。

那麼如何在SQL中更改列日期?

  • 我曾嘗試使用SELECT DISTINCT CONVERT(VARCHAR(100), [Change to], 112)但由於代碼有很多很多的日期範圍標準在where子句中,這是不是很友好的使用如此多的條款轉換爲每個where子句中。

  • 我也嘗試在導入時將nvarchar的格式更改爲日期,但它報告錯誤。

2方法不起作用,所以我急於從你那裏得到一些建議。 非常感謝您的幫助。

enter image description here

+0

如何準確地將Excel中的數據導入SQL Server? AFAICT問題不在SQL Server中,而是在您的導出/導入例程中? –

+0

@ TT。,我選擇「EXCEL」作爲數據源,並選擇「SQL SERVER NATIVE CLIENT 11.0」作爲目標文件 –

+0

您是否從SSMS執行此操作我假設?在這種情況下,您可能需要爲該列設置正確的映射。請閱讀[this](https://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/)瞭解如何做到這一點。 –

回答

1

您可以使用像這樣的東西轉換爲datetime格式VARCHAR進口:

=year(e4) & "-" & right("0" & month(e4), 2) & "-" & right("0" & day(e4), 2) & "T00:00:00" 

這將確保它使用兩位數字格式的月和日各一次。

您還可以使用:

=date(year(e4), month(e4), day(e4)) 

這將其轉換爲Excel日期格式。

+0

謝謝,它的工作原理 –