在SQL Server 2008中将字符串转换为日期时间

时间:2013-12-06 10:13:03

标签: sql-server tsql

简单的问题似乎无法正确。

我的表格中包含20/09/2012格式为varchar的日期。

我需要转换为datetime

尝试了各种解决方案,但无法做到正确。

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:3)

使用样式103(英国/欧洲)的CONVERT函数似乎对我有用:

DECLARE @input VARCHAR(20) = '20/09/2012'

SELECT
    CONVERT(DATETIME, @input, 103)

使用这种方法,您可以将所有VARCHAR日期转换为正确的数据类型 - DATETIME - 并将它们存储为DATETIME ....

请参阅bad habits to kick : mis-handling date / range queries上的Aaron Bertrand精彩博文,了解更多背景信息,了解为什么将日期保存为VARCHAR列真的非常糟糕....