excel文件中有两列:名称和时间
当我想要在默认情况下导入数据库时,它会将time列作为varchar类型。
导入excel后,未将其转换为日期格式。
select distinct cast([time] as datetime) FROM [table1]它显示了一个错误
Conversion failed when converting date and/or time from character string 在时间列中,值类似于9/26/2014,导入后在数据库中插入41908
解决方案是什么?
注意: excel中的时间列中有空值。在导入之前,我手动将时间单元格格式化为日期格式,但仍然不起作用。
发布于 2014-10-20 13:15:58
你总是可以确保按照你想要的设置日期格式
SET DATEFORMAT mdy;以防日期格式是另一种格式
但您必须注意空值,因此我建议检查值是否为空,如果是,则什么也不做,如果不是,则转换为日期.....
就像这样。
SET DATEFORMAT mdy;
select distinct case when [time] is null then 0 else cast([time] as datetime) end case from [table1]您总是可以将de cero (0)替换为您想要的任何值。
发布于 2014-10-20 14:04:23
您需要检查两件事,首先,检查SQL表中的列数据类型是Datetime还是varchar。其次,检查您的excel列是否格式化为日期。
现在,要在SQL表中插入日期列
检查以下步骤:
1)对带日期列的excel使用公式=Text(A1,"dd/mm/yyyy")。在导入数据之前,请执行复制粘贴特殊操作,以便从列中删除公式。
2)
SET DATEFORMAT DMY
select distinct Cast(Cast([time] as varchar(11)) as Datetime) FROM [table1]注:如果excel中的值为NULL,则日期列显示的文本为"NULL“还是为空?
https://stackoverflow.com/questions/26458795
复制相似问题