【问题标题】:datetime data type to a date data type resulted in an out-of-range value将 datetime 数据类型转换为 date 数据类型导致值超出范围
【发布时间】:2018-10-04 18:19:46
【问题描述】:

我正在尝试将1978-01-29 00:00:00.000这种格式的日期时间列转换为日期1978-01-29

我尝试了转换、强制转换、case 语句,但没有任何效果。我收到以下错误

日期数据类型到日期时间数据类型的转换导致 超出范围的值。

【问题讨论】:

  • 欢迎来到 Stack Overflow。我无法重现您的错误。您能否编辑您的帖子以包含失败的代码及其产生的错误消息?

标签: sql-server date datetime


【解决方案1】:

当我跑步时:

SELECT CAST('1978-01-29 00:00:00.000' AS date)

我明白了:

1978-01-29

如果您在运行该确切代码时遇到错误,那么您的区域设置可能会将“29”视为月份而不是日期,尽管我不知道有任何区域设置会以这种方式处理该字符串。

我还刚刚注意到您的错误消息说在将date 转换为datetime 时发生了错误。然而,在您的问题中,您声称您正在尝试将“日期时间列”转换为“日期”。也许错误不在您认为的代码部分。

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 2011-11-12
    • 2016-02-08
    • 2016-10-22
    相关资源
    最近更新 更多