Không, chúng không được đảm bảo trả về các giá trị giống hệt nhau mọi lúc. Mỗi tham chiếu riêng lẻ đến GetDate()
là một hằng số thời gian chạy và sẽ giữ giá trị của nó trong suốt truy vấn ...
SELECT GETDATE()
FROM large_table
sẽ trả về cùng một giá trị trong tất cả các hàng bất kể thời gian chạy truy vấn.
Nhưng không có gì đảm bảo rằng các tham chiếu khác nhau sẽ có cùng giá trị.
Bạn có thể thấy điều này như bên dưới
SET NOCOUNT ON;
DECLARE @T TABLE
(
rownum INT IDENTITY(1,1) PRIMARY KEY,
d1 DATETIME,
d2 DATETIME
)
WHILE (5 > (SELECT COUNT(*) FROM @T WHERE d1 <> d2))
BEGIN
DELETE FROM @T WHERE d1 = d2
INSERT INTO @T
SELECT GETDATE(),GETDATE()
END
SELECT * FROM @T
Kết quả mẫu
rownum d1 d2
----------- ----------------------- -----------------------
22381 2011-05-18 12:24:14.433 2011-05-18 12:24:14.437
30912 2011-05-18 12:24:15.420 2011-05-18 12:24:15.423
43234 2011-05-18 12:24:16.717 2011-05-18 12:24:16.720
113360 2011-05-18 12:24:24.210 2011-05-18 12:24:24.213
147855 2011-05-18 12:24:27.817 2011-05-18 12:24:27.820