gpt4 book ai didi

sql-server - 在 WHILE 循环中使用 GETDATE() 总是返回相同的值

转载 作者:行者123 更新时间:2023-12-05 05:22:34 26 4
gpt4 key购买 nike

我明白了from sources like thisGETDATE()应该总是(嗯,最终,取决于循环的速度)在循环中返回不同的值。

我有这个 TSQL:

DECLARE @WaitUntilTime DATETIME = DATEADD(SECOND, 10, GETDATE())

WHILE (DATEDIFF(SECOND, GETDATE(), @WaitUntilTime) > 0)
BEGIN
SELECT GETDATE(), @WaitUntilTime
END

但它始终为 GETDATE() 输出相同的值,并且循环永远不会像我希望的那样在 10 秒后结束。为什么?

我还找到了this answer这听起来像是一个类似的案例,但它讨论的是 GETDATE()SELECT 查询中对列进行一次评估。我不知道这是否也适用于 while 循环。

顺便说一句,我知道WAITFOR但我不能使用它,因为我想在单个批处理中引入延迟。

最佳答案

DECLARE @WaitUntilTime DATETIME = DATEADD(SECOND, 10, GETDATE())
DECLARE @Dummy int

WHILE (DATEDIFF(SECOND, GetDate(), @WaitUntilTime ) > 0)
BEGIN
Set @Dummy=1
END
SELECT GetDate(), @WaitUntilTime

延迟 10 秒后返回

(No column name)        (No column name)
2016-10-18 13:53:20.000 2016-10-18 13:53:20.140

关于sql-server - 在 WHILE 循环中使用 GETDATE() 总是返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40114576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com