gpt4 book ai didi

sql - 在单个 T-SQL 语句中多次返回时间戳

转载 作者:行者123 更新时间:2023-12-04 18:21:50 24 4
gpt4 key购买 nike

我有一个程序返回特定 timeZone 的日期时间。

CREATE Function [dbo].GetMyDate()  
Returns DATETIME
As
Begin
Return DateAdd(Hour,1,GetUTCDATE())
End

如果我在一个 T-SQL 语句中调用它两次或三次,它会给我完全相同的时间戳吗?
还是会返回不同的时间戳?

例如,
SELECT 1 FROM TABLE_A WHERE GetMyDate() between GetMyDate() AND GetMyDate()

如果我执行上面的语句,会不会 总是 给“1”??

最佳答案

您可以将其发布为答案吗...

简而言之,不,它不会。

测试场景中的函数执行了 3 次。现在考虑 SQL Server 的 DateTime数据类型只有 Rounded increments of .000, .003, or .007 seconds ,你可以调用之间得到不同的结果。您在测试场景中看不到它们的唯一原因是所有调用都在相同的时间间隔内返回。

概念证明

以下脚本可能需要一段时间才能执行,但当三个单独的调用不在同一时间间隔内发生时,它将停止。

SET NOCOUNT ON 
DECLARE @Var INTEGER = 1
WHILE @Var = 1
BEGIN
SELECT @Var = COUNT(*)
WHERE dbo.GetMyDate() BETWEEN dbo.GetMyDate() AND dbo.GetMyDate()

SELECT @Var
END

关于sql - 在单个 T-SQL 语句中多次返回时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494401/

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