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
