2016-11-13 94 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');