【问题标题】:T SQL SSMS Convert Varchar DD\MM\YYYY to Date formatT SQL SSMS 将 Varchar DD\MM\YYYY 转换为日期格式
【发布时间】:2018-02-24 09:07:30
【问题描述】:

我有一个VARCHAR(10) 数据类型列,其中日期为DD\MM\YYYY 格式。 我尝试使用convert(datetime,LOCALDATE_T,103) 等等。但是给我一个错误

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

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

请求您的帮助。

【问题讨论】:

  • REPLACE(mydatetextfield, '\', '/')
  • 不要将日期存储为字符串。这是反人类罪。使用date 类型
  • 例如,您不能查询其他日期之前、之后或之间的日期,因为字符串是按字母顺序排序的。您不能在此列上使用索引。强制转换将允许您查询但强制执行 FULL TABLE SCAN。基本上没用。

标签: sql-server-2008 tsql ssms ssms-2014


【解决方案1】:

可行的解决方案是:

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

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

【讨论】:

    【解决方案2】:

    使用 REPLACE 代替 CONVERT 函数

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

    【讨论】:

      猜你喜欢
      • 2012-03-05
      • 1970-01-01
      • 2023-03-27
      • 2016-02-03
      • 2013-10-19
      • 2013-11-10
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多