GETDATE (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Mengembalikan tanda waktu sistem database saat ini sebagai nilai tanggalwaktu tanpa offset zona waktu database. Nilai ini berasal dari sistem operasi komputer tempat instans SQL Server berjalan.
Catatan
SYSDATETIME dan SYSUTCDATETIME memiliki lebih banyak presisi detik pecahan daripada GETDATE dan GETUTCDATE. SYSDATETIMEOFFSET mencakup offset zona waktu sistem. SYSDATETIME, SYSUTCDATETIME, dan SYSDATETIMEOFFSET dapat ditetapkan ke variabel dari salah satu jenis tanggal dan waktu.
Azure SQL Database (dengan pengecualian Azure SQL Managed Instance) dan Azure Synapse Analytics mengikuti UTC. Gunakan ZONA WAKTU AT di Azure SQL Database atau Azure Synapse Analytics jika Anda perlu menginterpretasikan informasi tanggal dan waktu di zona waktu non-UTC.
Untuk gambaran umum semua jenis dan fungsi data tanggal dan waktu Transact-SQL, lihat Jenis dan Fungsi Data Tanggal dan Waktu (Transact-SQL).
Sintaks
GETDATE()
Jenis Hasil
datetime
Keterangan
Pernyataan T-SQL dapat merujuk ke GETDATE di mana saja mereka dapat merujuk ke ekspresi tanggalwaktu .
GETDATE adalah fungsi nondeterministik. Tampilan dan ekspresi yang mereferensikan fungsi ini dalam kolom tidak dapat diindeks.
Menggunakan SWITCHOFFSET dengan fungsi GETDATE() dapat menyebabkan kueri berjalan lambat karena pengoptimal kueri tidak dapat memperoleh perkiraan kardinalitas yang akurat untuk nilai GETDATE. Kami menyarankan agar Anda melakukan pra-komputasi nilai GETDATE lalu menentukan nilai tersebut dalam kueri seperti yang diperlihatkan dalam contoh berikut. Selain itu, gunakan petunjuk kueri OPTION (RECOMPILE) untuk memaksa pengoptimal kueri mengkombinasikan ulang rencana kueri lain kali kueri yang sama dijalankan. Pengoptimal kemudian akan memiliki perkiraan kardinalitas yang akurat untuk GETDATE() dan akan menghasilkan rencana kueri yang lebih efisien.
DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');
SELECT * FROM t
WHERE c1 > @dt OPTION (RECOMPILE);
Contoh
Contoh berikut menggunakan enam fungsi sistem SQL Server yang mengembalikan tanggal dan waktu saat ini untuk mengembalikan tanggal, waktu, atau keduanya. Nilai dikembalikan dalam seri; oleh karena itu, detik pecahannya mungkin berbeda.
J. Mendapatkan tanggal dan waktu sistem saat ini
SELECT SYSDATETIME()
,SYSDATETIMEOFFSET()
,SYSUTCDATETIME()
,CURRENT_TIMESTAMP
,GETDATE()
,GETUTCDATE();
Berikut set hasilnya.
SYSDATETIME() 2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP 2007-04-30 13:10:02.047
GETDATE() 2007-04-30 13:10:02.047
GETUTCDATE() 2007-04-30 20:10:02.047
B. Mendapatkan tanggal sistem saat ini
SELECT CONVERT (date, SYSDATETIME())
,CONVERT (date, SYSDATETIMEOFFSET())
,CONVERT (date, SYSUTCDATETIME())
,CONVERT (date, CURRENT_TIMESTAMP)
,CONVERT (date, GETDATE())
,CONVERT (date, GETUTCDATE());
Berikut set hasilnya.
SYSDATETIME() 2007-05-03
SYSDATETIMEOFFSET() 2007-05-03
SYSUTCDATETIME() 2007-05-04
CURRENT_TIMESTAMP 2007-05-03
GETDATE() 2007-05-03
GETUTCDATE() 2007-05-04
C. Mendapatkan waktu sistem saat ini
SELECT CONVERT (time, SYSDATETIME())
,CONVERT (time, SYSDATETIMEOFFSET())
,CONVERT (time, SYSUTCDATETIME())
,CONVERT (time, CURRENT_TIMESTAMP)
,CONVERT (time, GETDATE())
,CONVERT (time, GETUTCDATE());
Berikut set hasilnya.
SYSDATETIME() 13:18:45.3490361
SYSDATETIMEOFFSET() 13:18:45.3490361
SYSUTCDATETIME() 20:18:45.3490361
CURRENT_TIMESTAMP 13:18:45.3470000
GETDATE() 13:18:45.3470000
GETUTCDATE() 20:18:45.3470000
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
Contoh berikut menggunakan tiga fungsi sistem SQL Server yang mengembalikan tanggal dan waktu saat ini untuk mengembalikan tanggal, waktu, atau keduanya. Nilai dikembalikan dalam seri; oleh karena itu, detik pecahannya mungkin berbeda.
D. Mendapatkan tanggal dan waktu sistem saat ini
SELECT SYSDATETIME()
,CURRENT_TIMESTAMP
,GETDATE();
E. Mendapatkan tanggal sistem saat ini
SELECT CONVERT (date, SYSDATETIME())
,CONVERT (date, CURRENT_TIMESTAMP)
,CONVERT (date, GETDATE());
F. Mendapatkan waktu sistem saat ini
SELECT CONVERT (time, SYSDATETIME())
,CONVERT (time, CURRENT_TIMESTAMP)
,CONVERT (time, GETDATE());