我的varchar
类型的列字段格式为dd.mm.yyyy
。我正在尝试使用
varchar
字段转换为SQL Server中的日期时间
CONVERT(Datetime, LTRIM(RTRIM([Completion Date])), 102)
但是它给了我错误'将varchar
类型转换为日期类型导致超出范围值'
如何将此字段转换为datetime
格式?
答案 0 :(得分:2)
使用样式104
(dd.mm.yyyy
)代替102
(yyyy.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)
答案 3 :(得分:0)
您可以使用带有日期和日期时间的转换,如下所示:
SELECT convert(datetime, '27-09-2013', 104)
SELECT convert(date, '27-09-2013', 104)