如何将julian日期(csv文件)转换为sql server中的正常日期

时间:2017-04-28 15:50:57

标签: sql-server csv insert-into

我们尝试在excel中连接数据以便进行插入查询,但是日期col从2017年4月28日转换为'42853'(文本格式),当我们将数据插入到sql server时,它进来了文字格式。

Name Date Neha 28/04/2017

但是

1 个答案:

答案 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