在SQL Server中将varchar转换为datefield

时间:2018-03-07 15:09:55

标签: sql-server

我知道这是非常常见的,并尝试使用类似问题上建议的解决方案。但是,我似乎无法使其发挥作用。

我有一个包含日期的列,但它是varchar数据类型。

数据如下所示:

startdate
-----------
15/01/2007
29/06/1998
07/12/2001

依旧......

我尝试了以下命令

try_convert(datetime, startdate) as 'startdate'

但即使原始列中填充了日期,它也会返回很多NULL。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

try_convert方法接受三个参数:数据类型,表达式和样式。 您需要使用var xpos = [], _a = 0; with (objName) { xpos[a++] = x; } // xpos[0] is x of first object, xpos[1] of second etc. 参数:

Style

a list of supported styles can be found here

此外,您应将日期值存储为try_convert(datetime, startdate, 103) as 'startdate' -- 103 is dd/MM/yyyy ,而不是Date。 有关更多信息,请阅读Aaron Bertrand的Bad habits to kick : choosing the wrong data type