-1

我正在运行此查询,检查项目是否在过去 3 天内提交。但是,我拥有该WHERE子句的方式是在UD.Submitted >大于计算日期时显示所有项目,但是如果我将其切换,则会出现错误:

将 nvarchar 值“JYA3AWE091A087443”转换为数据类型 int 时转换失败。

阅读错误我得到它是一个类型转换错误,我只是不知道如何解决这个问题。UD.Submitted是类型smalldatetime我猜该DATEADD()函数是相同类型或某种类似日期的值。

任何帮助将不胜感激!

SELECT
    U.Id
    , U.Serial_N
    , UD.Submitted      
FROM UNIT U
LEFT JOIN UNIT_DATES UD ON U.Id = UD.Id
WHERE UD.Submitted < DATEADD(day, -3, CONVERT(DATETIME, GETDATE()))
    AND U.Serial_N = 1234567890
4

1 回答 1

0

好的,如上所述@Dale KI 没有引用 my U.Serial_N,因此获取一些示例数据后,我发现它不仅是数字,还有其他字符。碰巧我得到的结果都是数字的。在周围添加''修复它。

以后的示例数据

+-------+-------------------+---------------------+
|  ID   |   Serial_Number   |   Date Submitted    |
+-------+-------------------+---------------------+
| 95131 | 5LMFU28508LJ12116 | 2020-02-13 14:36:00 |
| 95132 | 3GYFK66N66G128591 | 2020-02-13 14:38:00 |
| 95133 | 1234567890        | 2020-02-13 14:39:00 |
+-------+-------------------+---------------------+
于 2020-05-20T21:26:55.300 回答