【问题标题】:could not convert varchar to datetime in SQL server无法在 SQL Server 中将 varchar 转换为日期时间
【发布时间】:2012-05-28 07:00:50
【问题描述】:

在我的数据库中,由于日期时间格式不同,我在将 varchar 转换为日期时间时遇到了问题,如下所示。

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

我有 2 个如下选择子句

选择 Getutcdate()
从 perfmon 中选择前 1 个本地机器时间

两者分别返回以下格式

2012-05-28 06:54:45.753>

28-05-2012 03:03:07

当我尝试使用 CAST 将其转换为日期时间时,它会在第二种情况下给我错误,如下所示。

导致将 varchar 数据类型转换为 datetime 数据类型 在一个超出范围的值。

【问题讨论】:

  • 发布您的演员查询到目前为止您尝试了什么?

标签: sql-server


【解决方案1】:

您可以将convert 与日期/时间样式一起使用。

convert(datetime, '28-05-2012 03:03:07', 105)

【讨论】:

  • 感谢您的回复,它运行良好,但有什么解决方案可以转换为 105,而不管 '28-05-2012 03:03:07'(第二个参数)格式,它会有所不同在我的情况下
  • 您是说localmachinetimeperfmon 已将datetime 值存储为不同 格式的字符串?
  • “到 105”是什么意思?该代码将 105字符串格式转换为 datetime.
  • 哦,意思是 105 代表这种格式 '28-05-2012 03:03:07'?我不确定那里的格式是什么,在我的情况下会是任何格式。
  • 如果您知道字符串中的日期格式为dd-mm-yy,则可以使用上述代码将字符串转换为日期时间。这就是105 所做的。如果要从其他格式转换,则必须使用不同的样式。如果您出于某种原因需要将日期时间存储为字符串,则应使用 yyyy-mm-ddThh:mi:ss.mmm 作为值的格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 2011-10-12
  • 1970-01-01
  • 2020-01-02
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多