Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chọn hàm GETDATE () hai lần trong một danh sách đã chọn-- cùng một giá trị cho cả hai?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. (Các) chỉ mục tốt nhất để sử dụng cho Câu lệnh OR trong SQL Server

  2. Xóa các hàng trùng lặp trong SQL Server

  3. Làm cách nào để sử dụng tính năng xóa theo tầng với SQL Server?

  4. Cách chèn Danh sách C # vào cơ sở dữ liệu bằng Dapper.NET

  5. Làm thế nào để lưu tệp trong cơ sở dữ liệu SQL Server nếu có đường dẫn tệp?