在excel文件中有两列:名称和时间
当我想在默认情况下导入数据库时,它将时间列作为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
解决方案是什么?
N.B:excel中的Time列中有Null值。在导入之前,我手动将时间单元格格式化为日期格式,但仍然无效。
答案 0 :(得分:0)
始终可以确保使用
设置日期格式SET DATEFORMAT mdy;
以防日期格式为其他格式
但你必须处理Null值,所以我建议检查该值是否为null,如果是,则不做任何事,但如果没有,则转换为日期......
像这样。SET DATEFORMAT mdy;
select distinct case when [time] is null then 0 else cast([time] as datetime) end case from [table1]
你总是可以将de cero(0)重新设置为你想要的任何东西。
答案 1 :(得分:0)
你需要检查两件事, 首先,检查SQL表中的列数据类型,无论是Datetime还是varchar。 其次,检查您的Excel列是否格式化为日期。
现在,在SQL表中插入日期列
检查以下步骤:
1)使用公式,=文本(A1,“dd / mm / yyyy”)作为日期列的Excel。 DO COPY PASTE SPECIAL在导入数据之前从列中删除公式。
2)
SET DATEFORMAT DMY
select distinct Cast(Cast([time] as varchar(11)) as Datetime) FROM [table1]
注意:如果是NULL,excel中的值是显示文本“NULL”的日期列,还是为空?