CURRENT_TIME is a non-deterministic SQL datetime keyword that evaluates to the current time when the statement starts executing. It follows the session or server time zone unless the dialect appends a time-zone qualifier. Its return type is TIME [ (p) ] where p ranges from 0 to 6 fractional-second digits. CURRENT_TIME is evaluated once per statement, so multiple references within the same query yield the same value. It can be used anywhere an expression is allowed: SELECT lists, WHERE clauses, CHECK constraints, column defaults, and stored procedures. In PostgreSQL and SQL Server the value includes a time-zone offset (TIME WITH TIME ZONE), whereas MySQL and SQLite return a time without offset. Because it is non-deterministic, most databases forbid its use in deterministic, indexed, or generated columns unless marked VOLATILE or NONDETERMINISTIC.
precision
(INTEGER) - Optional. Number of fractional-second digits (0-6). Default is database-specific (usually 6).#VALUE!
CURRENT_DATE, CURRENT_TIMESTAMP, LOCALTIME, LOCALTIMESTAMP, NOW(), SYSDATE
SQL-92
It shows the server or session time zone, not the client machine’s clock. Check or set your session time zone if results look unexpected.
Define the column with a default: `created_time TIME DEFAULT CURRENT_TIME`. Every new row receives the current clock time automatically.
PostgreSQL returns `TIME WITH TIME ZONE` by default, so the value contains a signed offset (e.g., 15:04:17.123456+00). Cast to `TIME` if you need to drop the offset.
Use `CURRENT_TIME(6)` for microsecond detail when troubleshooting high-frequency events; `CURRENT_TIME(3)` suffices for most application logs.