On Thu, Apr 14, 2022 at 12:11 AM kyle minmaxcorp.com <[email protected]> wrote:
> 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. > The javadoc of java.time.temporal.ChronoUnit#MONTHS explains the idea: ---- Unit that represents the concept of a month. For the ISO calendar system, the length of the month varies by month-of-year. The estimated duration of a month is one twelfth of 365.2425 Days. When used with other calendar systems it must correspond to an integral number of days. ---- So it is neither 28, 29, 30 nor 31 but Duration.ofSeconds(31556952L / 12) > > 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 >
