Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Memilih fungsi GETDATE() dua kali dalam daftar pilih-- nilai yang sama untuk keduanya?

Tidak, mereka tidak dijamin mengembalikan nilai yang identik setiap saat. Setiap referensi individu ke GetDate() adalah konstanta runtime dan akan mempertahankan nilainya sepanjang kueri...

SELECT GETDATE()
FROM large_table

akan mengembalikan nilai yang sama di semua baris terlepas dari berapa lama kueri dijalankan.

Tetapi tidak ada jaminan bahwa referensi yang berbeda akan memiliki nilai yang sama.

Anda dapat melihat ini seperti di bawah ini

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

Contoh Hasil

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. Entity Framework 4 Code First - Cegah DB Drop/Create

  2. Sisipan Massal SQL Server – Bagian 1

  3. Prosedur tersimpan dijalankan dengan indeks yang berbeda saat dipanggil melalui Entity Framework dibandingkan dengan SSMS

  4. Apakah saya memerlukan objek Layanan?

  5. Pivot dan koma nilai yang dipisahkan