【问题标题】:Conversion of a varchar data type to a datetime data type resulted in an out-of-range value in TSQL将 varchar 数据类型转换为 datetime 数据类型导致 TSQL 中的值超出范围
【发布时间】:2017-09-28 12:29:37
【问题描述】:

在我的 T-SQL 选择中,我的日期时间似乎有错误

select 
    t.F47, t.F53, t.F40, t.F162, t.F163,
    N'10' as kostenart, t.F39, t.F2, t.F5,
    convert(nvarchar, cast(t.F9 as datetime), 112),
    t.PARID, 20170928135800 as exportzeitstempel  
from 
    T_TRANS6 as t 
where 
    t.F20 = N'Erledigt' 
    and t.F9 < convert(datetime, '01.09.2017 00:00:00', 104)

错误信息是德语,上面写着:

Meldung 242,Ebene 16,状态 3,Zeile 1
Bei der Konvertierung eines nvarchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs。

我试着把它翻译成:

将 char 数据类型转换为日期时间数据类型导致日期时间值超出范围。"

我真的不知道我是怎么做到的,谢谢大家的帮助

【问题讨论】:

  • 看起来您在选择中将 F9 转换为日期时间,您可能还需要在 where 子句中执行此操作。
  • @JacobH 嘿,感谢您抽出宝贵时间,帮我,我不是已经这样做了吗?
  • 我在 t.F9 的 where 子句中没有看到强制转换函数...
  • 英文消息其实是:“将char数据类型转换为datetime数据类型导致datetime值超出范围。”
  • 在典型的德国 SQL 服务器安装中,CAST('dd.MM.yyyy HH:mm:ss' as datetime) 通常可以工作,因为它是本地标准格式。 CONVERT 与 104 第三个参数实际上会尝试将日期时间转换为给定格式的 varchar。

标签: sql-server tsql datetime


【解决方案1】:

你的问题是由cast(t.F9 as datetime)触发的。

请使用:SELECT getdate(); 获取隐式的“日期时间到字符串”转换格式。

警告:在实例级别设置隐式转换格式。它可能因服务器而异,即使在同一公司中也是如此......

这会给你一些类似dd.MM.yyyy HH:mm:ssyyyy-MM-dd HH:mm:ss或...

给定的格式是所有 F9 TRANS6 表记录的预期和必需

具有错误格式模式的单个 TRANS6.F9 将引发此错误。所以分析你的 F9 数据,找到相关的行,清理它们并重试......

注意:CONVERT(NVARCHAR(8), getdate(),112) 得到一个类似YYYYMMDD 的字符串(例如:'20170928'),女巫是日期的唯一可排序字符串格式...

编辑:F9 = '2016.10.30' 和隐式转换期望 '2016-10-30' !!

试试这个:

select 
    t.F47, t.F53, t.F40, t.F162, t.F163,
    N'10' as kostenart, t.F39, t.F2, t.F5,
    convert(nvarchar, convert(datetime,t.F9,102), 112),
    t.PARID, 20170928135800 as exportzeitstempel  
from 
    T_TRANS6 as t 
where 
    t.F20 = N'Erledigt' 
    and t.F9 < convert(datetime, '01.09.2017 00:00:00', 104)

有效吗?

【讨论】:

  • 所以我做了 SELECT getdata() 这就是结果:2017-09-28 15:12:04.050
  • 我的F9里的数据是这样的2016.10.30
猜你喜欢
  • 2011-11-12
  • 2016-02-08
  • 1970-01-01
  • 2014-01-17
  • 2018-11-13
相关资源
最近更新 更多