2016-11-13 146 views
1

我轉換Google SheetSQL database table。當它加載Excel sheet(我在谷歌工作表數據複製到Excel和導入)SQL改變一些數據類型。我的Excel sheet中有一列是SQL轉換爲nvarchar的日期。當我嘗試convert回一個date data type,我得到這個錯誤:轉換數據類型

"Conversion failed when converting date and/or time from character string."

我的代碼似乎是正確的......我會告訴你。

USE Sample 
ALTER TABLE ['RM Item List$'] 
ALTER COLUMN [Kosher Cert] date 

有人可以給我一個想法,爲什麼這不起作用?我知道關於data conversion的問題已被問到噁心,但我沒有看到幫助我解決問題的答案。 SQL將我的日期在Kosher Cert列中轉換爲五個數字的strings。任何幫助,將不勝感激。

+0

請提供存儲在'[Kosher Cert]'字段中的數據樣本,你說他們是數字,以及你認爲應該是的日期。 – mendosi

+0

好吧,一個例子。 Kosher Cert字段是我工作中食品Kosher認證的日期。 SQL將其轉換爲1/31/2017至47266.它將日期格式更改爲nvarchar。另一個例子... SQL在另一行中更改了12/31/2016至42735。 – Ethan

+0

Excel的內部存儲日期數字,http://excel.officetuts.net/en/training/how-excel-stores-date-and-time,它看起來是Excel的那些獲得寫入你的表內號(假設2017年1月31日實際上是42766而不是47266)。既然這看起來是這樣,那麼我認爲我的回答應該是你最好的前進方向。 – mendosi

回答

0

此相關的話題可能會有所幫助: T-SQL to convert Excel Date Serial Number to Regular Date

這可能會令最有意義的一列添加到您的表的日期型,填充它,然後刪除nvarchar柱:

ALTER TABLE ['RM Item List$'] ADD [KosherCert] date; 
UPDATE ['RM Item List$'] 
    SET [KosherCert] = DateAdd(Day, Convert(int, [Kosher Cert]), '1899-12-30');