current_date
Generic Description
Returns the current date. It is documented separately because time construction, sequence ordering, window parameters, and as-of behavior materially change analytical meaning.
Simple example:
RETURN current_date()
Consumer-Level Explanation
Use it for live date-relative filtering where non-determinism is intentional. Prefer this function when the temporal assumption should be visible to the planner, especially for event streams, freshness checks, and sequence features.
More Detailed Explanation
current_date belongs to the temporal construction, conversion, or extraction surface. Use it to make time semantics explicit in the query text: whether a value is date-only, time-only, timestamp-like, duration-like, current-time dependent, or bucketed to a chosen calendar unit.
Advanced Example
This example names the event stream and operational context before applying current_date, which helps planner tooling preserve the intended sequence semantics.
MATCH (u:User)-[e:VIEWED]->(d:Document)
TIME e.ts BETWEEN datetime('2025-01-01T00:00:00Z') AND datetime('2025-02-01T00:00:00Z')
WITH u, e, d,
unpivot(properties(d.metadata)) AS metadata_rows,
date_trunc('day', e.ts) AS day_bucket,
current_date(properties(d).created_at) AS focused_value
RETURN u.user_id, d.title, day_bucket, metadata_rows, focused_value
LIMIT 10
Real Use Cases
- time-bucketed graph analytics
- as-of filtering and event-window construction
- making imported timestamp strings or epoch values typed before comparison
Real Limitations And Tradeoffs
- current-time functions are intentionally nondeterministic
- timezone and local-time choices should be made explicit when results cross systems
- extractors and truncation functions do not create temporal history; they only transform values already in the row