Retrieve the current date and/or time from the database server. Each engine has multiple synonyms with subtle differences around timezone awareness and precision.
Return the current date, time, or timestamp at query execution time. Useful for filtering by today or recording creation timestamps. CURRENT_TIMESTAMP and NOW() are often synonymous; verify behavior in your engine.
| Database System | Support Status | Since Version | Notes |
|---|---|---|---|
| MySQL | ✓ Supported | all | NOW() returns datetime in session timezone. CURRENT_TIMESTAMP is a synonym. SYSDATE() returns the time at the moment of execution (differs from NOW() inside stored procs). UTC_TIMESTAMP() for UTC. CURDATE() / CURTIME() for date or time only. |
| PostgreSQL | ✓ Supported | all | NOW() and CURRENT_TIMESTAMP return timestamptz (with timezone) fixed at transaction start — the same value is returned throughout a transaction. CLOCK_TIMESTAMP() returns the real current time (changes mid-transaction). CURRENT_DATE and CURRENT_TIME also available. |
| SQL Server | ✓ Supported | all | GETDATE() returns local server time as datetime. GETUTCDATE() for UTC. SYSDATETIME() returns higher-precision datetime2. SYSUTCDATETIME() for UTC datetime2. CURRENT_TIMESTAMP is a synonym for GETDATE(). |
| Oracle | ✓ Supported | all | SYSDATE returns server date/time without timezone (DATE type). SYSTIMESTAMP returns with timezone (TIMESTAMP WITH TIME ZONE). CURRENT_DATE and CURRENT_TIMESTAMP return session timezone values. |
| SQLite | ✓ Supported | all | No dedicated function — use datetime(), date(), or time() with 'now'. Always returns UTC. CURRENT_TIMESTAMP, CURRENT_DATE, and CURRENT_TIME are also available as SQL-standard aliases. |
PostgreSQL's NOW() is fixed at transaction start — call CLOCK_TIMESTAMP() if you need it to advance mid-transaction. Oracle's SYSDATE has no timezone, SYSTIMESTAMP does — easy to mix up. SQLite always returns UTC from 'now' and requires an explicit 'localtime' modifier. SQL Server's GETDATE() precision is milliseconds; use SYSDATETIME() for microseconds.
NOW() returns datetime in session timezone. CURRENT_TIMESTAMP is a synonym. SYSDATE() returns the time at the moment of execution (differs from NOW() inside stored procs). UTC_TIMESTAMP() for UTC. CURDATE() / CURTIME() for date or time only.
NOW() and CURRENT_TIMESTAMP return timestamptz (with timezone) fixed at transaction start — the same value is returned throughout a transaction. CLOCK_TIMESTAMP() returns the real current time (changes mid-transaction). CURRENT_DATE and CURRENT_TIME also available.
GETDATE() returns local server time as datetime. GETUTCDATE() for UTC. SYSDATETIME() returns higher-precision datetime2. SYSUTCDATETIME() for UTC datetime2. CURRENT_TIMESTAMP is a synonym for GETDATE().
SYSDATE returns server date/time without timezone (DATE type). SYSTIMESTAMP returns with timezone (TIMESTAMP WITH TIME ZONE). CURRENT_DATE and CURRENT_TIMESTAMP return session timezone values.
No dedicated function — use datetime(), date(), or time() with 'now'. Always returns UTC. CURRENT_TIMESTAMP, CURRENT_DATE, and CURRENT_TIME are also available as SQL-standard aliases.