【发布时间】:2018-10-01 14:17:54
【问题描述】:
我正在尝试将我的文本列转换为日期时间。我已经尝试了几件事,但我不断收到错误。到目前为止我尝试过的步骤:
Convert(datetime, mydate, 103)
在我的系统中执行此查询后给出的错误: '将表达式转换为数据类型日期时间的算术溢出错误' 所以我在网上搜索,找到了几种我尝试过的解决方案。
Convert(datetime, convert(char(8), mydate)
和
Cast(cast(mydate as char(8)) as datetime)
执行这些查询后它给我的错误:'从字符串转换日期和/或时间时转换失败'所以我搜索了更多可能的解决方案并尝试了这个:
Convert(datetime, convert(char(8), mydate),103)
但这仍然给我同样的错误。我现在真的没有解决方案了。有没有人知道如何解决这个问题?
提前致以诚挚的问候和感谢
这是一些示例数据:
+----+------------+
| ID | MyDate |
+----+------------+
| 1 | 20170120 |
+----+------------+
| 2 | 19940101 |
+----+------------+
| 3 | 20001220 |
+----+------------+
| 4 | 20171101 |
+----+------------+
【问题讨论】:
-
你能发布一些示例数据吗?
-
如果您使用 错误 格式,这些转换都不会起作用。这些值是什么样的?是否有混合的 MM/DD 和 DD/MM 值?如果有,则无法使用单个命令转换文本。您必须以某种方式发现每个条目使用的格式
-
请发表您的查询!我确定类型或声明有问题!
-
@Tito 没有理由假设类型或声明存在问题。
Arithmetic overflow error converting expression to data type datetime'在这种情况下不会被抛出。 远 文本与格式不匹配的可能性更大 -
我不希望在从 string 到 datetime 的转换中出现错误(“'算术溢出错误将表达式转换为数据类型 datetime'”)我>。您可能会得到类似这样的信息:“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。”