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

SYSDATETIME() vs GETDATE() di SQL Server:Apa Perbedaannya?

SQL Server memiliki banyak fungsi yang mengembalikan tanggal/waktu saat ini. Dua di antaranya adalah GETDATE() dan SYSDATETIME() fungsi.

Sekilas, kedua fungsi ini tampaknya melakukan hal yang sama – mendapatkan tanggal dan waktu saat ini dari sistem operasi komputer yang menjalankan instance SQL Server.

Namun, ada perbedaan tipis di antara keduanya.

Perbedaannya? Jenis Nilai Pengembalian

Perbedaan utama antara GETDATE() dan SYSDATETIME() ada dalam tipe nilai kembalian.

  • GETDATE() mengembalikan waktu tanggal nilai.
  • SYSDATETIME() mengembalikan a datetime2(7) nilai.

Ini berarti bahwa SYSDATETIME() memiliki presisi pecahan detik lebih banyak daripada GETDATE() .

Kedua fungsi mendapatkan tanggal dan waktu saat ini dari sistem operasi komputer yang menjalankan instance SQL Server, tetapi presisi pecahannya berbeda.

Contoh

Berikut ini contoh untuk mendemonstrasikan nilai berbeda yang dikembalikan untuk setiap fungsi:

SELECT 
    GETDATE() AS GETDATE,
    SYSDATETIME() AS SYSDATETIME;

Hasil:

+-------------------------+-----------------------------+
| GETDATE                 | SYSDATETIME                 |
|-------------------------+-----------------------------|
| 2018-06-13 02:48:27.653 | 2018-06-13 02:48:27.6542371 |
+-------------------------+-----------------------------+

Jadi seperti yang disebutkan, SYSDATETIME() , yang mengembalikan datetime2(7) nilai, memiliki presisi pecahan yang lebih besar daripada  GETDATE() , yang mengembalikan datetime nilai.

datetime2 tipe data juga memiliki rentang tanggal yang lebih besar dan presisi yang ditentukan pengguna opsional.

Mana Yang Harus Saya Gunakan?

Microsoft menyarankan agar kami menggunakan datetime2 dengan nilai tanggal/waktu kami. Tipe data ini sejajar dengan standar SQL, dan lebih portabel daripada datetime .

Oleh karena itu, gunakan SYSDATETIME() kecuali Anda punya alasan untuk tidak melakukannya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Driver.getConnection hang menggunakan driver SQLServer dan Java 1.6.0_29

  2. Memecahkan Masalah saat Bekerja dengan Tanggal dan Waktu di SQL Server

  3. Nilai pencocokan klausa SQL WHERE dengan spasi tambahan

  4. Apa tujuan dari tabel sistem master..spt_values ​​dan apa arti dari nilainya?

  5. Mempermudah kinerja SQL Server