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.