If I'm being honest I would only do days, hours, milliseconds. Months doesn't really have a defined standard (unless I know the datetime that I am adding to or subtracting to). I can't add or subtract 30 days and know that it is a month. The actual is same for a year. So, based on some of the implementations I'm seeing. The first value isn't month, but should be referred to as 30 day intervals.
> On April 13, 2022 12:05 PM Micah Kornfield <[email protected]> wrote: > > > Hi Kyle, > > We would have to know the start datetime and end datetime to calculate the > > actual values. > I believe this is intended. There are two types of durations, those that > relate to calendars (you need to know when they start) and those that are > independent of any notion of calendar and measure an absolute time delta. > Both are useful. It's unfortunate that there isn't common terminology, Avro's > duration is referred to as interval in other systems. > > > The duration logical type represents an amount of time defined by the > > number of weeks, days, and milliseconds. > Changing to weeks seems like a fundamentally breaking change? What value do > weeks have over days? For context in SQL systems there are generally two > different durations (Year-Month) and (Days/Seconds). Some systems combine the > two (e.g. Postgres and BigQuery). > > Cheers, > Micah > > > On Wed, Apr 13, 2022 at 11:22 AM kyle minmaxcorp.com (http://minmaxcorp.com) > <[email protected]> wrote: > > When it comes to a duration type, both years and months are not standard > > increments. We would have to know the start datetime and end datetime to > > calculate the actual values. > > > > Current Text: > > > > Duration > > > > The duration logical type represents an amount of time defined by a number > > of months, days and milliseconds. This is not equivalent to a number of > > milliseconds, because, depending on the moment in time from which the > > duration is measured, the number of days in the month and number of > > milliseconds in a day may differ. Other standard periods such as years, > > quarters, hours and minutes can be expressed through these basic periods. > > > > > > > > A duration logical type annotates Avro fixed type of size 12, which stores > > three little-endian unsigned integers that represent durations at different > > granularities of time. The first stores a number in months, the second > > stores a number in days, and the third stores a number in milliseconds. > > > > > > > > Updated text: > > > > Duration > > > > The duration logical type represents an amount of time defined by the > > number of weeks, days, and milliseconds. Other standard periods such as > > hours, minutes, and seconds can be expressed through these basic periods. > > > > > > > > A duration logical type annotates Avro fixed type of size 12, which stores > > three little-endian unsigned integers that represent durations at different > > granularities of time. The first stores a number in weeks, the second > > stores a number in days, and the third stores a number in milliseconds. > > > > > > Additional discussions: > > https://issues.apache.org/jira/browse/AVRO-739?focusedCommentId=14083646&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14083646
