Skip to content

Instantly share code, notes, and snippets.

@orian
Created March 23, 2026 16:20
Show Gist options
  • Select an option

  • Save orian/96eb597e61e0206c0ea5f03fcc058605 to your computer and use it in GitHub Desktop.

Select an option

Save orian/96eb597e61e0206c0ea5f03fcc058605 to your computer and use it in GitHub Desktop.

ClickHouse date/time/timezone changes: v25.8 through v25.12

Summary of all changes to date handling (including date/time/timezone conversion functions) from the 2025 changelog.


v25.12 (2025-12-18)

New Feature

  • Time and Time64 data types are now production ready; enable_time_time64_type is enabled by default. #89345changelog line 68

Bug Fixes


v25.11 (2025-11-27)

Backward Incompatible Changes

  • Escape filenames for Variant type subcolumns in Wide data parts. Fixes storing types with special symbols inside Variant (like DateTime with a specific timezone containing \). #87300changelog line 300
  • Parquet no-timezone timestamps (isAdjustedToUTC=false) are now read as DateTime64(..., 'UTC') instead of DateTime64(...). Use input_format_parquet_local_time_as_utc = 0 for old behavior. #87872changelog line 305

Bug Fixes


v25.10 (2025-10-31)

Bug Fixes

  • Fixed incorrect handling of pre-epoch dates with fractional seconds in parseDateTime64BestEffort, change{Year,Month,Day}, and makeDateTime64. Previously the subsecond part was subtracted from seconds instead of added. E.g. parseDateTime64BestEffort('1969-01-01 00:00:00.468') returned 1968-12-31 23:59:59.532 instead of 1969-01-01 00:00:00.468. #85396changelog line 684
  • Fix inferring Date/DateTime/DateTime64 on dates that are out of supported range. #86184changelog line 686
  • Makes toDate and toDate32 behave the same for all numeric types. Fixes Date32 underflow check during cast from int16. #87176changelog line 695
  • Fix handling of timestamp / timestamptz columns in Glue catalog. #87733changelog line 725
  • Fix incorrect granules/partitions elimination for datetime-based keys when using session_timezone setting in queries. #87987changelog line 737
  • Fix UBSAN integer overflow in accurateCast error message when converting large values to DateTime. #88520changelog line 765
  • Fix bug where converting DateTime64 to Date with date_time_overflow_behavior = 'saturate' could lead to incorrect results for out-of-range values when working with time zones. #88737changelog line 775

v25.9 (2025-09-25)

Backward Incompatible Change

  • Disable nonsensical binary operations with IPv4/IPv6 — disallows operations with floating types that previously threw logical errors with some types (such as DateTime). #86336changelog line 797

New Feature

  • Aggregate functions timeSeriesChangesToGrid and timeSeriesResetsToGrid (PromQL changes/resets equivalents using timestamp grids). #86010changelog line 818

Improvements

Bug Fixes


v25.8 LTS (2025-08-28)

New Features

  • Added function dateTimeToUUIDv7 to convert a DateTime value to a UUIDv7. #84319changelog line 1034
  • timeSeriesDerivToGrid and timeSeriesPredictLinearToGrid aggregate functions (PromQL deriv/predict_linear equivalents). #84328changelog line 1035
  • New TimeSeries functions: timeSeriesRange(start_timestamp, end_timestamp, step) and timeSeriesFromGrid(start_timestamp, end_timestamp, step, values). #85435changelog line 1036

Improvement

Bug Fix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment