Date & Time
PostgreSQL
CLOCK_TIMESTAMP
Mengembalikan timestamp aktual saat fungsi dipanggil. Berbeda dengan NOW/CURRENT_TIMESTAMP yang tetap sama dalam satu transaksi.
Tipe hasil:
timestamp with time zoneSyntax
SQL
CLOCK_TIMESTAMP()Parameter
Fungsi ini tidak memerlukan parameter.
Contoh Penggunaan
Timestamp Real-time
SQL
1 SELECT 2 CLOCK_TIMESTAMP() AS call_1, 3 pg_sleep(1), 4 CLOCK_TIMESTAMP() AS call_2;
CLOCK_TIMESTAMP berubah setiap pemanggilan.
Hasil
| call_1 | call_2 |
|---|---|
| 2024-01-15 14:30:45.001 | 2024-01-15 14:30:46.002 |
NOW vs CLOCK_TIMESTAMP
SQL
1 SELECT 2 NOW() AS transaction_time, 3 CLOCK_TIMESTAMP() AS actual_time 4 FROM generate_series(1, 3);
NOW tetap sama, CLOCK_TIMESTAMP berbeda setiap row.
Hasil
| transaction_time | actual_time |
|---|---|
| 2024-01-15 14:30:45 | 2024-01-15 14:30:45.001 |
| 2024-01-15 14:30:45 | 2024-01-15 14:30:45.002 |
| 2024-01-15 14:30:45 | 2024-01-15 14:30:45.003 |
Logging Execution Time
SQL
1 INSERT INTO process_logs (step, timestamp) 2 VALUES 3 (Start, CLOCK_TIMESTAMP()), 4 (Processing, CLOCK_TIMESTAMP()), 5 (End, CLOCK_TIMESTAMP());
Logging dengan timestamp berbeda per step.