我们尝试在excel中连接数据以便进行插入查询,但是日期col从2017年4月28日转换为'42853'(文本格式),当我们将数据插入到sql server时,它进来了文字格式。
Name Date
Neha 28/04/2017
但是
答案 0 :(得分:2)
将excel中的数字作为天数添加到1899-12-30的日期将返回正确的日期。
select dateadd(day,42853,'18991230')
返回:2017-04-28
在SQL Server 2012+中,您可以使用try_cast()
将文本值转换为整数。
select
...
, dateadd(day,try_cast(col as int),'18991230')
from t
在此之前,您可以在patindex()
中使用case expression
来确认该列只是数字,然后在尝试cast()
之前,如果文本中有某些列可能列不是数字。
select
...
, case when patindex('[0-9][0-9][0-9][0-9][0-9]',col) = 1
then dateadd(day,cast(col as int),'18991230')
else null
end
from t