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
格式的列,即/
,但不是这个\
请求您的帮助。
答
工作溶液是:
CONVERT(datetime, REPLACE(LOCALDATE_T, '\', '/'), 103)
或
CAST(REPLACE(LOCALDATE_T, '\', '/') as date)
REPLACE(mydatetextfield, '\', '/') – john
*不要*将日期存储为字符串。这是一种危害人类的罪行。使用'date'类型 –
例如,由于字符串按字母顺序排序,因此无法查询日期之前,之后或其他日期之间的日期。你不能在这个colun上使用索引。 Casting将允许您查询但强制* FULL TABLE SCAN *。它本质上是无用的。 –