如何在where子句中将Decimal转换为DateTime

Kri*_*ota 1 sql sql-server datetime decimal converter

我正在尝试将Decimal DateTime值转换为DateTime数据类型并检查select查询中的条件

SELECT * FROM CLBALTRNTBL WHERE CONVERT(DATETIME,LSTDAT) >= @sDt 
      AND CONVERT(DATETIME,LSTDAT) <= @eDt
Run Code Online (Sandbox Code Playgroud)

但发生以下错误

Arithmetic overflow error converting expression to data type datetime.
Run Code Online (Sandbox Code Playgroud)

我在存储过程中执行此操作.和@sDt@eDtDateTime变量.该LSTDAT格式为yyyyMMdd20120317

但是如果我LSTDAT直接输入列,例如20130805,执行查询.但是用什么?

你能帮我吗 ?

Rav*_*ngh 5

试试这个 :

SELECT *
FROM CLBALTRNTBL
WHERE CONVERT(DATETIME, CONVERT(VARCHAR(8), LSTDAT), 112) >= @sDt
    AND CONVERT(DATETIME, CONVERT(VARCHAR(8), LSTDAT), 112) <= @eDt
Run Code Online (Sandbox Code Playgroud)