The UTC range for 2028 starts at 1830297600 and ends at the exclusive boundary 1861920000. The year has 366 days.

Use the year as a half-open range

WHERE event_time >= 1830297600
  AND event_time <  1861920000

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 1830297600 2028-01-01T00:00:00Z
February 1 1832976000 2028-02-01T00:00:00Z
March 1 1835481600 2028-03-01T00:00:00Z
April 1 1838160000 2028-04-01T00:00:00Z
May 1 1840752000 2028-05-01T00:00:00Z
June 1 1843430400 2028-06-01T00:00:00Z
July 1 1846022400 2028-07-01T00:00:00Z
August 1 1848700800 2028-08-01T00:00:00Z
September 1 1851379200 2028-09-01T00:00:00Z
October 1 1853971200 2028-10-01T00:00:00Z
November 1 1856649600 2028-11-01T00:00:00Z
December 1 1859241600 2028-12-01T00:00:00Z

Quarter boundaries

  • Q1: 1830297600 (2028-01-01T00:00:00Z)
  • Q2: 1838160000 (2028-04-01T00:00:00Z)
  • Q3: 1846022400 (2028-07-01T00:00:00Z)
  • Q4: 1853971200 (2028-10-01T00:00:00Z)
  • Next year: 1861920000 (2029-01-01T00:00:00Z)

These are UTC values. A local business year begins at a different instant unless the business timezone is UTC; calculate those boundaries in the named location before storing the result.