【发布时间】: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