将日期字符串转换为 SQL DATETIME - 希望没有 udf

Ica*_*rus 0 t-sql sql-server-2008-r2 sql-server-2012 datetime

我正在使用一个 Excel 文件,该文件具有不同格式的日期,但是当我尝试将其转换或将其转换为 SQL DATETIME 时,其中一种格式给我带来了一些痛苦。例如:

Thu Oct 16 13:40:19 2014Tue Apr 1 12:20:40 2014等等。

基本上格式是ddd MM dd HH:mm:ss yyyy.

我想知道是否有某种日期样式可以让我在一行中进行转换。我可以为此编写一个函数,但我想知道是否有更优雅的解决方案。我谷歌搜索没有运气。

Tho*_*erg 5

这有效:

DECLARE @mycol VARCHAR(30) = 'Tue Apr  1 12:20:40 2014'

SELECT CAST(SUBSTRING(@mycol, PATINDEX('% %', @mycol), 100) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

开头的日期名称是它无法直接转换的原因。

无需声明变量,您只需替换@mycol上面脚本中包含日期的列即可。