Dari TFM, sorot milik saya:
9.9.4. Tanggal/Waktu Saat Ini
PostgreSQL menyediakan sejumlah fungsi yang mengembalikan nilai yang terkait dengan tanggal dan waktu saat ini. Fungsi standar SQL ini semua mengembalikan nilai berdasarkan waktu mulai transaksi saat ini :
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(precision) CURRENT_TIMESTAMP(precision) LOCALTIME LOCALTIMESTAMP LOCALTIME(precision) LOCALTIMESTAMP(precision)
...
Karena fungsi-fungsi ini mengembalikan waktu mulai dari transaksi saat ini, nilainya tidak berubah selama transaksi. Ini dianggap sebagai fitur:tujuannya adalah untuk memungkinkan satu transaksi memiliki gagasan yang konsisten tentang waktu "saat ini", sehingga banyak modifikasi dalam transaksi yang sama memiliki cap waktu yang sama.
PostgreSQL juga menyediakan fungsi yang mengembalikan waktu mulai dari pernyataan saat ini, serta waktu aktual saat ini pada saat fungsi dipanggil. Daftar lengkap fungsi waktu non-SQL-standar adalah:
transaction_timestamp() statement_timestamp() clock_timestamp() timeofday() now()
transaction_timestamp()
setara denganCURRENT_TIMESTAMP
, tetapi dinamai untuk secara jelas mencerminkan apa yang dikembalikannya.statement_timestamp()
mengembalikan waktu mulai dari pernyataan saat ini (lebih spesifik, waktu penerimaan pesan perintah terbaru dari klien).statement_timestamp()
dantransaction_timestamp()
mengembalikan nilai yang sama selama perintah pertama dari suatu transaksi, tetapi mungkin berbeda selama perintah berikutnya.clock_timestamp()
mengembalikan waktu aktual saat ini , dan oleh karena itu nilainya berubah bahkan dalam satu perintah SQL.timeofday()
adalah fungsi PostgreSQL historis. Sukaclock_timestamp()
, ini mengembalikan waktu aktual saat ini, tetapi sebagai string teks yang diformat, bukan stempel waktu dengan nilai zona waktu.now()
adalah PostgreSQL tradisional yang setara dengantransaction_timestamp()
.