如何在SQL中将字符串dd.mm.yyyy转换为日期

时间:2016-12-18 14:58:58

标签: sql sql-server

我的varchar类型的列字段格式为dd.mm.yyyy。我正在尝试使用

将此varchar字段转换为SQL Server中的日期时间
CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 102)

但是它给了我错误'将varchar类型转换为日期类型导致超出范围值'

如何将此字段转换为datetime格式?

4 个答案:

答案 0 :(得分:2)

使用样式104dd.mm.yyyy)代替102yyyy.mm.dd

CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 104)

同样是varchar类型的字段,因此在转换之前可能会有一些不良日期需要消除。

如果您使用的是SQL SERVER 2012+,请使用TRY_CONVERT,对于错误的日期,我们会NULL

TRY_CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 104)

答案 1 :(得分:2)

您可以随时使用:

 SELECT convert(datetime, '23/07/2009', 102)

答案 2 :(得分:0)

您也可以使用:

 SELECT convert(date, '21.12.2016', 104)

enter image description here

答案 3 :(得分:0)

您可以使用带有日期和日期时间的转换,如下所示:

SELECT convert(datetime, '27-09-2013', 104)
SELECT convert(date, '27-09-2013', 104)