Add raw integer value support for extended-range date/time types #569
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Date32, Datetime64, Timestamp64, and Interval64 types use 4/8-byte integers to represent values outside DateTime/TimeSpan ranges. Previously, attempting to read or write such values would throw "Ticks must be between DateTime.MinValue.Ticks and DateTime.MaxValue.Ticks" exceptions.
Changes
YdbDataReader
GetInt32()now returns raw values for Date32 (signed days from Unix epoch)GetInt64()now returns raw values for Datetime64 (signed seconds), Timestamp64 (signed microseconds), and Interval64 (signed microseconds)YdbPrimitiveTypeInfo
intvalues directlylongvalues directlyUsage
DateTime/TimeSpan conversion still works for values within their supported ranges.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.