小编Joh*_*ler的帖子

SubSelect上带有MILLISECONDS的SQL DATEDIFF

我不知道为什么你不能使用DATEDIFFMILLISECONDS在子查询中.

SELECT *
FROM (
    SELECT *
    FROM vrghmdemo.dbo.xrmQueues
    WHERE DATEDIFF(DAY, CreateDateTime, GETDATE()) < 2
) sub
WHERE DATEDIFF(MS, CreateDateTime, GETDATE()) < 500
Run Code Online (Sandbox Code Playgroud)

这导致(德语):

Meldung 535:Die datediff-FunktionführtezueinemÜberlauf.Die Anzahl von datepart-Werten,die zwei Datums-/Uhrzeitinstanzen trennen,istzugroß.

(英文对等):

日期函数导致溢出.分隔两个日期/时间实例的日期部分数量太大.尝试使用具有不太精确的日期部分的datediff.

如果我WHERE再次在SubSelect之外使用相同的条件,它就可以工作.

SELECT *
FROM (
    SELECT *
    FROM vrghmdemo.dbo.xrmQueues
    WHERE DATEDIFF(DAY, CreateDateTime, GETDATE()) < 2
) sub
WHERE DATEDIFF(DAY, CreateDateTime, GETDATE()) < 2
    AND DATEDIFF(MS, CreateDateTime, GETDATE()) < 500
Run Code Online (Sandbox Code Playgroud)

为什么会这样?条件已在SubSelect中使用.

sql t-sql sql-server

1
推荐指数
1
解决办法
179
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1