T SQL SSMS将Varchar DD \ MM \ YYYY转换为日期格式

问题描述:

我有一个VARCHAR(10)数据类型列,日期格式为DD\MM\YYYY格式。 我试过使用convert(datetime,LOCALDATE_T,103)等等。然而抛出一个错误T SQL SSMS将Varchar DD MM YYYY转换为日期格式

转换日期和/或时间从字符 字符串转换失败。

我不确定我的查询是否可以读取DD\MM\YYYY。我通常会转换DD/MM/YYYY格式的列,即/,但不是这个\

请求您的帮助。

+2

REPLACE(mydatetextfield, '\', '/') – john

+1

*不要*将日期存储为字符串。这是一种危害人类的罪行。使用'date'类型 –

+0

例如,由于字符串按字母顺序排序,因此无法查询日期之前,之后或其他日期之间的日期。你不能在这个colun上使用索引。 Casting将允许您查询但强制* FULL TABLE SCAN *。它本质上是无用的。 –

工作溶液是:

CONVERT(datetime, REPLACE(LOCALDATE_T, '\', '/'), 103) 

CAST(REPLACE(LOCALDATE_T, '\', '/') as date) 

使用REPLACE代替CONVERT功能

REPLACE(LOCALDATE_T,'\','/')