The UTC range for 2025 starts at 1735689600 and ends at the exclusive boundary 1767225600. The year has 365 days.
Use the year as a half-open range
WHERE event_time >= 1735689600
AND event_time < 1767225600
The exclusive upper boundary is safer than “December 31 at 23:59:59.” It works whether the database stores whole seconds, milliseconds, or fractions of a second.
Month starts in UTC
| Month start | Unix seconds | ISO 8601 UTC |
|---|---|---|
| January 1 | 1735689600 | 2025-01-01T00:00:00Z |
| February 1 | 1738368000 | 2025-02-01T00:00:00Z |
| March 1 | 1740787200 | 2025-03-01T00:00:00Z |
| April 1 | 1743465600 | 2025-04-01T00:00:00Z |
| May 1 | 1746057600 | 2025-05-01T00:00:00Z |
| June 1 | 1748736000 | 2025-06-01T00:00:00Z |
| July 1 | 1751328000 | 2025-07-01T00:00:00Z |
| August 1 | 1754006400 | 2025-08-01T00:00:00Z |
| September 1 | 1756684800 | 2025-09-01T00:00:00Z |
| October 1 | 1759276800 | 2025-10-01T00:00:00Z |
| November 1 | 1761955200 | 2025-11-01T00:00:00Z |
| December 1 | 1764547200 | 2025-12-01T00:00:00Z |
Quarter boundaries
- Q1: 1735689600 (2025-01-01T00:00:00Z)
- Q2: 1743465600 (2025-04-01T00:00:00Z)
- Q3: 1751328000 (2025-07-01T00:00:00Z)
- Q4: 1759276800 (2025-10-01T00:00:00Z)
- Next year: 1767225600 (2026-01-01T00:00:00Z)
These are UTC values. If the business timezone is not UTC, its local year begins at a different instant; calculate those boundaries in the named location before storing the result.