将格式为“25-OCT-13 01.08.24.732000000 PM”的excel中的日期转换为Sql Server 2008 R2中的DateTime

时间:2013-11-18 20:38:05

标签: sql sql-server excel datetime sql-server-2008-r2

我的varchar日期格式为“25-OCT-13 01.08.24.732000000 PM”(已从excel文件中读取)。现在我需要在Sql Server 2008 R2中将其转换为DateTime类型。

我检查了Sql Server的Convert()函数,但是这种格式与任何现有格式都不匹配,例如101或120等,即Convert(DateTime,thisweirdDate,120)不起作用。

感谢。

1 个答案:

答案 0 :(得分:2)

好的,是更好的方法,但这是一种方式:

DECLARE @DataExample VARCHAR(31)
SET @DataExample = '25-OCT-13 01.08.24.732000000 PM'

SELECT  CONVERT(DATETIME,CONVERT(VARCHAR(8),[Date],112)+
        ' '+CONVERT(VARCHAR(12),[Time]))
FROM (
SELECT  CONVERT(DATE,REPLACE(LEFT(@DataExample,9),'-',' '),6) [Date],
        CONVERT(TIME,REPLACE(SUBSTRING(@DataExample,11,12),'.',':')+
                     RIGHT(@DataExample,2)) [Time]
) A