【问题标题】:Conversion failed when converting date and/or time from character string when select date选择日期时从字符串转换日期和/或时间时转换失败
【发布时间】:2018-04-12 15:05:19
【问题描述】:

我希望日期显示为 yyyy-mm-dd。表中日期的值为 dd/mm/yyyy。我已经运行了查询

select CONVERT(DATE, FORMDATE, 103) from UPDATELOG 

我收到错误“从字符串转换日期和/或时间时转换失败”。任何人都可以帮助我吗?

【问题讨论】:

  • mysql 还是 Sql Server?它们是不同的东西。
  • 了解您的 RDBMS。 mysql sql-server。然而,这看起来像 T-SQL,因为CONVERT 有一个样式代码。请更新您的标签,但还要添加至少几个示例值。
  • 这意味着您的数据中有错误的日期。并非所有日期都采用dd/mm/yyyy 格式。你使用的是哪个版本的sql server?也停止将日期存储为字符串以避免将来出现此类问题
  • 这里挑战的根源在于您将日期存储为字符串。存储日期时应始终使用日期/日期时间数据类型。这就是存在这些数据类型的原因。 sqlblog.org/2009/10/12/…

标签: sql sql-server


【解决方案1】:

这当然看起来像 SQL Server。所以,请改用try_convert()

select TRY_CONVERT(DATE, FORMDATE, 103)
from UPDATELOG  ;

要获取失败的值,请使用:

select FORMDATE
from UPDATELOG
where TRY_CONVERT(DATE, FORMDATE, 103) is null

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多