adbugger opened a new issue, #246:
URL: https://github.com/apache/arrow-dotnet/issues/246

   ### Describe the enhancement requested
   
   When serializing a DateTimeOffset into an Arrow type, the TimestampType 
feels like a natural choice. However there is no time unit which fully 
represents both the precision and range of a C# DateTimeOffset. A 
DateTimeOffset tick is 100 nanoseconds long and the full range of representable 
values is between years 0001 and 9999 according to the 
[documentation](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset?view=netstandard-2.0).
   
   There are currently 2 options for TimeUnit when converting a C# 
DateTimeOffset to TimestampType
   
   - TimeUnit.Microseconds : Lose precision but be able to fully convert every 
valid DateTimeOffset to Timestamp
   - TimeUnit.Nanoseconds : Keep precision, but the range of representable 
calendar years is reduced to 1677 - 2262
   
   Of course, users could serialize DateTimeOffset into a long in the Arrow 
Table and remember the type when deserializing. However, it would be nice to 
preserve the type information. Having a new TimeUnit equal to a tick would 
solve this tension.
   
   I appreciate that adding a new time unit would be a fundamental change to 
arrow across more than just the .NET ecosystem, please let me know if this has 
been considered before or if the discussion needs to be moved elsewhere.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to