측정기준_그룹

용도

view: view_name {
dimension_group: field_name { ... }
}
계층 구조
dimension_group
결제 가능
Looker 식별자(측정기준 그룹에서 만든 각 측정기준의 이름의 첫 번째 역할을 함)

특수 규칙
  • typetime 또는 duration일 수 있습니다.
  • 일반적으로 timeframes 또는 intervals 매개변수와 함께 사용
  • 측정기준 그룹이 날짜/시간 필드를 기반으로 하지 않는 경우 datatype 매개변수를 사용합니다.
  • type: time 측정기준 그룹의 경우 시간대 자동 변환을 방지하려면 convert_tz 매개변수를 사용하세요.

정의

dimension_group 매개변수는 시간 기반 측정기준 또는 기간 기반 측정기준 집합을 한 번에 만드는 데 사용됩니다. 측정기준 그룹을 정의하면 측정기준 그룹에 서로 다른 간격 또는 기간에 따른 개별 측정기준 집합이 생성됩니다. 예를 들어 타임스탬프 열을 기반으로 type: time 측정기준 그룹을 지정할 수 있으며, 측정기준 그룹에서 시간, 날짜, 주, 시간, 분기, 연도로 데이터를 표현하는 해당 측정기준을 만듭니다.

측정기준 그룹의 형식과 기능은 측정기준 그룹의 type 값에 따라 다릅니다.

기간 유형

type: durationdimension_group와 함께 사용되어 간격 기반 기간 측정기준 집합을 계산합니다.

type: duration 측정기준 그룹의 형식은 다음과 같습니다.

dimension_group: dimension_group_name {
  type: duration
  sql_start: SQL expression ;;  # often this is a single database column
  sql_end: SQL expression ;;  # often this is a single database column
  intervals: [interval, interval, …] # valid intervals described below
}

type: duration의 측정기준 그룹:

  • sql_startsql_end 매개변수는 해당 기간의 시작 시간과 종료 시간을 정의하는 SQL 표현식을 제공합니다. 자세한 내용은 이 페이지의 기간의 시작과 끝 정의 섹션을 참고하세요.

  • intervals 매개변수는 시차를 측정하는 데 사용해야 하는 간격 단위를 하나 이상 지정합니다. 가능한 옵션은 이 페이지의 간격 옵션 섹션에 나열되어 있습니다.

  • 기간 값은 가장 가까운 정수로 버려집니다.

  • datatype 매개변수는 선택사항입니다. 측정기준 그룹이 날짜/시간을 기반으로 하지 않는 경우 에포크, 타임스탬프, 날짜 또는 yyyymmdd 형식을 대신 지정할 수 있습니다. type: duration 측정기준 그룹의 경우 datatype 매개변수가 sql_startsql_end 매개변수에 모두 적용되므로 sql_startsql_end가 모두 지정된 데이터 유형이어야 합니다. datatype 매개변수는 이 페이지의 데이터베이스 datatype 지정 섹션에 자세히 설명되어 있습니다.

여기에 나와 있지 않지만 다수의 필드 수준 매개변수를 측정기준 그룹과 함께 사용할 수 있습니다.

예를 들어 enrollment_dategraduation_date 열이 있으면 기간 측정기준 그룹을 만들어 학생들이 학교에서 보낸 시간을 확인하고 주 및 연도 간격으로 계산할 수 있습니다.

dimension_group: enrolled {
  type: duration
  intervals: [week, year]
  sql_start: ${TABLE}.enrollment_date ;;
  sql_end: ${TABLE}.graduation_date ;;
}

탐색 UI에서 등록된 기간이라는 측정기준 그룹이 생성되고 등록된 주등록된 연도라는 개별 측정기준이 포함됩니다.

인터벌 옵션

intervals 매개변수는 측정기준에 sql_start 시간과 sql_end 시간 사이의 시차를 측정하는 데 사용해야 하는 간격 단위를 알려줍니다. intervals 매개변수는 type: duration의 측정기준 그룹에만 지원됩니다.

intervals가 포함되지 않으면 측정기준 그룹에 가능한 모든 간격이 포함됩니다.

intervals 매개변수의 옵션은 다음과 같습니다.

기간 설명 출력 예시
day 일 단위의 시차를 계산합니다. 9 days
hour 시차를 계산합니다. 171 hours
minute 분 단위의 시차를 계산합니다. 10305 minutes
month 월 단위의 시차를 계산합니다. 3 months
quarter 해당 연도의 분기별 시차를 계산합니다. 2 quarters
second 시차를 초 단위로 계산합니다. 606770 seconds
week 시차를 계산합니다. 6 weeks
year 시차를 연 단위로 계산합니다. 2 years

기간의 시작 및 끝 정의

type: duration 측정기준 그룹의 sql_startsql_end 매개변수는 시차를 계산하는 데 사용되는 시작 및 종료 정보를 제공합니다. 이 필드는 타임스탬프, 날짜/시간, 날짜, 에포크 또는 yyyymmdd 형식의 데이터가 포함된 유효한 SQL 표현식을 사용할 수 있습니다. sql_startsql_end 필드는 다음 중 하나일 수 있습니다.

  • type: time의 기존 측정기준 그룹에서 raw 기간에 대한 참조
  • type: date_raw 차원에 대한 참조
  • 타임스탬프인 SQL 표현식(예: 타임스탬프인 SQL 열에 대한 참조)
  • 방언에 적절한 표현식을 사용하여 데이터베이스에서 시간을 가져오는 SQL 표현식
  • ::datetime 또는 ::date 필드 유형 참조를 사용하는 LookML 필드 참조

예를 들어 다음과 같은 날짜/시간 정보가 포함된 faa_event_date_raw라는 측정기준이 있다고 가정해 보겠습니다.

dimension: faa_event_date_raw {
  type: date_raw
  sql: ${TABLE}.event_date ;;
}

FAA 이벤트 날짜 이후 경과한 시간을 계산하는 type: duration 측정기준 그룹을 만들 수 있습니다. 이렇게 하려면 faa_event_date_raw 측정기준을 계산 시작 시간으로 사용하고 계산 종료 시간에는 현재 언어의 방언 SQL 표현식을 사용하면 됩니다. 다음은 MySQL 데이터베이스의 예입니다.

dimension_group: since_event {
  type: duration
  intervals: [hour, day]
  sql_start: ${faa_event_date_raw} ;;
  sql_end: CURRENT_TIMESTAMP();;
}

탐색 UI에서 이벤트 이후 기간이라는 측정기준 그룹이 생성되고, 개별 측정기준이 이벤트 이후 경과된 시간이벤트 이후 경과 일수라는 이름으로 생성됩니다.

다른 LookML 필드의 간격 참조

type: durationdimension_group에서 interval 값을 참조하려면 interval 값의 복수형을 사용하여 ${interval_fieldname} 문법을 사용합니다. 예를 들어 다음 LookML 예에서 average_days_since_event 측정값은 ${days_since_event}를 사용하여 since_event 측정기준 그룹의 day 간격을 참조합니다.


dimension_group: since_event {
  type: duration
  intervals: [hour, day, week, month, quarter, year]
  sql_start: ${faa_event_date_raw} ;;
  sql_end: CURRENT_TIMESTAMP();;
}

measure: average_days_since_event {
  type: average
  sql: ${days_since_event} ;;
}

기간 필드에 LookML 필드 유형 참조 사용

맞춤 기간 필드를 만들려면 type: duration 측정기준 그룹의 sql_startsql_end 매개변수에서 참조되는 측정기준에 ::date 또는 ::datetime 참조 유형을 지정하면 됩니다. SQL 통합 및 LookML 객체 참조 문서 페이지에 설명된 view_name.field_name::type 문법을 사용하면 이러한 측정기준에 대한 참조를 문자열로 변환하지 않고도 ::date 또는 ::datetime 버전의 필드를 만들 수 있습니다.

예를 들어, created 측정기준 그룹이 type: time이고 기간이 time, date, week, monthraw이고 다음과 같이 정의되어 있다고 가정합니다.


dimension_group: created {
  type: time
  timeframes: [time, date, week, month, raw]
  sql: ${TABLE}.created_at ;;
}

측정기준 created_monthcreated_time를 사용하여 created_date 필드의 날짜와 해당 월의 첫 번째 날 사이의 시간(주, 일, 시간으로 측정됨)을 계산하는 type: duration의 측정기준 그룹을 만들 수 있습니다.


dimension_group: since_first_of_month {
  type: duration
  intervals: [week, day, hour]
  sql_start: ${created_month::datetime} ;;
  sql_end: ${created_time::datetime} ;;
}

탐색 UI에서 첫 번째 날 이후 기간이라는 측정기준 그룹이 만들어지며, 각 측정기준은 매월 첫 주 이후 경과 일수, 매월 첫날 이후 경과 일수, 첫 달 이후 경과된 시간 등의 측정기준이 포함됩니다. sql_startsql_end 매개변수에 참조된 필드에 ::datetime 참조 유형을 지정하면 created_monthcreated_time 측정기준이 생성된 SQL에서 타임스탬프로 처리될 수 있습니다.

예를 들어 사용자가 필드 선택 도구에서 생성일첫 달 이후 경과 일수 측정기준을 선택했다고 가정해 보겠습니다. 생성된 날짜에 반환된 값 중 하나가 2019-03-10이면 매월 첫날 이후 경과 일수9일이 됩니다.

시간 유형

type: timedimension_grouptimeframes 매개변수와 함께 시간 기반 측정기준 집합을 만드는 데 사용됩니다. 예를 들어 단일 타임스탬프 열을 기준으로 날짜, 주, 월 측정기준을 쉽게 만들 수 있습니다.

type: time 측정기준 그룹의 형식은 다음과 같습니다.

dimension_group: dimension_group_name {
  type: time
  timeframes: [timeframe, timeframe, …] # valid timeframes described below
  sql: SQL expression ;;  # often this is a single database column
  datatype: epoch| timestamp | datetime | date | yyyymmdd # defaults to datetime
  convert_tz: yes | no   # defaults to yes
}

type: time의 측정기준 그룹:

  • timeframes 매개변수는 선택사항이지만 건너뛰는 경우는 거의 없습니다. 측정기준 그룹에서 생성해야 하는 기간을 하나 이상 지정합니다. timeframes가 포함되어 있지 않으면 모든 기간 옵션이 측정기준 그룹에 추가됩니다. 가능한 선택사항은 이 페이지의 기간 옵션 섹션에 나와 있습니다.

  • type: time 측정기준 그룹의 sql 매개변수는 타임스탬프, 날짜/시간, 날짜, 에포크 또는 yyyymmdd 형식의 데이터가 포함된 유효한 SQL 표현식을 사용할 수 있습니다.

  • datatype 매개변수는 선택사항입니다. 측정기준 그룹이 날짜/시간을 기반으로 하지 않는 경우 에포크, 타임스탬프, 날짜 또는 yyyymmdd 형식을 대신 지정할 수 있습니다. 이 페이지의 데이터베이스 datatype 지정 섹션에 자세히 설명되어 있습니다.

  • convert_tz 매개변수는 선택사항이며 시간대 자동 변환을 방지할 수 있습니다. 이 페이지의 시간대 전환 및 convert_tz 섹션에 자세히 설명되어 있습니다.

여기에 나와 있지 않지만 다수의 필드 수준 매개변수를 측정기준 그룹과 함께 사용할 수 있습니다.

예를 들어 datetime 정보가 포함된 created_at라는 열이 있다고 가정해 보겠습니다. 이 날짜/시간을 기반으로 날짜, 주, 월 측정기준을 만들려고 합니다. 다음을 사용할 수 있습니다.

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

이렇게 하면 탐색 UI에서 생성일, 생성된 주, 생성된 월이라는 3개의 측정기준이 생성됩니다. dimension_group 이름을 기간과 결합하여 측정기준 이름을 생성하는 방법에 유의하세요.

기간 옵션

timeframes 매개변수는 type: time의 측정기준 그룹에만 지원됩니다. type: duration의 측정기준 그룹에는 intervals 매개변수를 대신 사용하세요.

timeframes 매개변수는 측정기준 그룹에 생성해야 하는 측정기준을 알려줍니다. 옵션은 다음과 같습니다.

특별 기간

기간 설명 출력 예시
raw 변환 또는 시간대 변환 없이 데이터베이스의 원시 값입니다. raw는 LookML 내에서만 액세스할 수 있으며 탐색 페이지에 표시되지 않습니다. raw 기간은 타임스탬프가 지정된 대부분의 문자열을 반환하는 것과 달리 타임스탬프를 반환합니다. 주로 필드에서 날짜 작업을 수행하는 데 사용됩니다. 2014-09-03
17:15:00 +0000
yesno yesno 측정기준, 날짜/시간에 값이 있으면 'Yes'를 반환하고 그렇지 않으면 'No'를 반환합니다. 다른 기간과 달리 다른 필드에서 yesno 기간 측정기준을 참조할 때 기간을 참조에 포함하지 마세요. 예를 들어 dimension_group: created에서 yesno 기간을 참조하려면 ${created_yesno}가 아닌 ${created} 구문을 사용합니다. Yes

기간

기간 설명 출력 예시
time 기본 필드의 일시 2014-09-03 17:15:00
time_of_day 시간 17:15
hour 가장 가까운 시간으로 잘린 날짜 2014-09-03 17
hour_of_day 기본 필드의 시간(정수) 17
hourX 각 요일을 지정된 시간 간격으로 나눕니다. 자세한 내용은 아래를 참고하세요. 아래 참고
minute 일시가 1분 단위로 잘림 2014-09-03 17:15
minuteX 각 시간 단위를 지정된 시간(분)으로 분할합니다. 자세한 내용은 아래를 참고하세요. 아래 참고
second 잘린 시간(초 단위) 2014-09-03 17:15:00
millisecond Datetime이 가장 가까운 밀리초로 잘립니다 (언어 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참고). 2014-09-03 17:15:00.000
millisecondX 각 초를 지정된 밀리초 수의 간격으로 분할합니다 (언어 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참조). 자세한 내용은 아래를 참고하세요. 아래 참고
microsecond DateTime은 가장 가까운 마이크로초로 잘립니다 (언어 지원에 대한 자세한 내용은 이 페이지의 밀리초 및 마이크로초에 대한 방언 지원 섹션 참고). 2014-09-03 17:15:00.000000

기간

기간 설명 출력 예시
date 기본 필드의 날짜 2017-09-03

주 단위

기간 설명 출력 예시
week 기본 날짜/시간의 월요일부터 시작하는 요일 2017-09-01
day_of_week 요일만 Wednesday
day_of_week_index 요일 색인 (0 = 월요일, 6 = 일요일) 2

기간

기간 설명 출력 예시
month 기본 날짜/년의 연도와 월 2014-09
month_num 기본 날짜/시간에 해당하는 월의 정수입니다. 9
fiscal_month_num 기본 날짜/시간의 회계 월의 정수입니다. 6
month_name 월 이름 September
day_of_month 날짜 3

fiscal_month_num 기간을 사용하려면 모델에 fiscal_month_offset 매개변수를 설정해야 합니다.

분기 기간

기간 설명 출력 예시
quarter 기본 날짜/년의 연도와 분기 2017-Q3
fiscal_quarter 회계 연도의 기본 날짜/시간 2017-Q3
quarter_of_year 연중 분기에 'Q' 표시 Q3
fiscal_quarter_of_year 'Q' 앞에 오는 회계 분기 Q3

fiscal_quarterfiscal_quarter_of_year 기간을 사용하려면 모델에 fiscal_month_offset 매개변수를 설정해야 합니다.

연도

기간 설명 출력 예시
year 기본 날짜/시간의 정수 연도 2017
fiscal_year 기본 날짜/시간의 회계연도 정수입니다. FY2017
day_of_year 날짜 143
week_of_year 숫자로 표시된 주(1년 기준) 17

fiscal_year 기간을 사용하려면 모델에 fiscal_month_offset 매개변수를 설정해야 합니다.

hourX 사용

hourX에서 X가 2, 3, 4, 6, 8 또는 12로 대체됩니다.

이렇게 하면 각 요일이 지정된 시간 간격으로 나누어집니다. 예를 들어 hour6는 매일 6시간 세그먼트로 분할되며 다음과 같이 표시됩니다.

  • 2014-09-01 00:00:00
  • 2014-09-01 06:00:00
  • 2014-09-01 12:00:00
  • 2014-09-01 18:00:00

예를 들어 time2014-09-01 08:03:17인 행에는 hour62014-09-01 06:00:00가 있습니다.

minuteX 사용

minuteX에서 X가 2, 3, 4, 5, 6, 10, 12, 15, 20, 30으로 대체됩니다.

이렇게 하면 매 시간에서 지정된 시간(분)으로 분할됩니다. 예를 들어 minute15는 매시간 15분 세그먼트로 분할되며 다음과 같이 표시됩니다.

  • 2014-09-01 01:00:00
  • 2014-09-01 01:15:00
  • 2014-09-01 01:30:00
  • 2014-09-01 01:45:00

예를 들어 time2014-09-01 01:17:35인 행에는 minute152014-09-01 01:15:00가 있습니다.

millisecondX 사용

millisecondX에서 X가 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500으로 대체됩니다.

이렇게 하면 각 초를 지정된 밀리초 수의 간격으로 분할합니다. 예를 들어 millisecond250는 1초마다 250밀리초 세그먼트로 분할되며 다음과 같이 표시됩니다.

  • 2014-09-01 01:00:00.000
  • 2014-09-01 01:00:00.250
  • 2014-09-01 01:00:00.500
  • 2014-09-01 01:00:00.750

예를 들어 time2014-09-01 01:00:00.333인 행에는 millisecond2502014-09-01 01:00:00.250가 있습니다.

시간대 전환 및 convert_tz

일반적으로 시간 계산 (차이, 기간 등)은 모두 동일한 시간대로 변환된 시간 값에서 작업하는 경우에만 올바르게 작동하므로 LookML을 작성할 때 시간대를 염두에 두어야 합니다.

Looker에는 다양한 시간대 간에 시간 기반 데이터를 변환하는 다양한 시간대 설정이 있습니다. Looker는 기본적으로 시간대 변환을 수행합니다. convert_tz 매개변수는 type: time의 측정기준 그룹에 지원됩니다. Looker에서 특정 측정기준 또는 측정기준 그룹에 대해 시간대 변환을 실행하지 않도록 하려면 convert_tz 매개변수 문서 페이지에 설명된 convert_tz 매개변수를 사용하면 됩니다.

밀리초 및 마이크로초를 위한 언어 지원

Looker는 시간대 정밀도에서 마이크로초까지 지원되지만 일부 데이터베이스는 초 단위까지 정밀도를 지원합니다. 데이터베이스에서 지원할 수 있는 시간보다 정확한 기간이 발견되면 초 단위로 반올림됩니다.

Looker 최신 출시 버전에서는 다음 언어가 밀리초를 지원합니다.

Looker 최신 출시 버전에서 다음 언어가 마이크로초를 지원합니다.

datatype 데이터베이스 지정

datatype 매개변수를 사용하면 측정기준 그룹에 제공하고 있는 데이터베이스 표의 시간 데이터 유형을 지정할 수 있어 쿼리 성능을 높일 수 있습니다.

type: time의 측정기준 그룹에서 datatype 매개변수는 측정기준 그룹의 sql 매개변수에 적용됩니다.

type: duration의 측정기준 그룹에서 datatype 매개변수는 sql_startsql_end 매개변수에 모두 적용되므로 sql_startsql_end이 모두 지정된 데이터 유형이어야 합니다.

datatype 매개변수는 다음 값을 허용합니다.

  • epoch: SQL 에포크 필드입니다. 즉, Unix 에포크에서 초를 나타내는 정수입니다.
  • date: SQL 날짜 필드입니다 (즉, 시간 정보가 없는 필드).
  • datetime: SQL 날짜/시간 필드입니다.
  • timestamp: SQL 타임스탬프 필드입니다.
  • yyyymmdd: YYYYMMDD 형식의 날짜를 나타내는 정수가 포함된 SQL 필드입니다.

datatype의 기본값은 timestamp입니다.

Examples

날짜/시간 정보가 포함된 created_at라는 열이 있다고 가정하겠습니다. 이 날짜/시간을 기반으로 날짜, 주, 월 측정기준을 만들려고 합니다. 다음을 사용할 수 있습니다.

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

-

이렇게 하면 탐색 UI에서 생성일, 생성된 주, 생성된 월이라는 3개의 측정기준이 생성됩니다. dimension_group 이름을 기간과 결합하여 측정기준 이름을 생성하는 방법에 유의하세요.

고려사항

측정기준 그룹은 개별 측정기준으로 참조해야 합니다.

측정기준 그룹은 측정기준 그룹을 나타내므로 측정기준 하나만 사용하는 것이 아니라 LookML에서 직접 참조할 수 없습니다. 대신 생성된 측정기준을 참조해야 합니다.

예를 들어 이 측정기준 그룹을 살펴보겠습니다.

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

-

다른 LookML 필드에서 이러한 측정기준 중 하나를 참조하려면 ${created_date}, ${created_week}, {$created_month} 참조를 사용하세요. ${created}만 사용하려고 하면 Looker에서 참조하는 기간을 알 수 없어 오류가 발생합니다.

따라서 timeframe을 두 개 이상 지정하는 경우 측정기준 그룹에 primary_key 매개변수를 사용해서는 안 됩니다.

채팅 팀 팁: dimension_group이(가) timeframe 이상인 경우 primary_key를 사용할 때 발생하는 유효성 검사 오류에 대해 자주 묻는 질문입니다. 자세한 내용은 이 커뮤니티 주제를 참조하세요.

시간대 정보가 포함된 타임스탬프 데이터

일부 데이터베이스 언어에는 시간대 정보가 포함된 타임스탬프 옵션이 있습니다. 이를 통해 시간대를 여러 개일 수 있는 단일 필드에 타임스탬프 데이터를 저장할 수 있습니다. 하나의 데이터 행은 UTC로, 다른 행은 동부 표준시로 저장될 수 있습니다. 예를 들어 Snowflake 언어 타임스탬프 옵션에 관한 자세한 내용은 Snowflake TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ 타임스탬프 문서를 참고하세요.

이 경우 Looker에서 시간대 변환을 수행하면 오류가 발생할 수 있습니다. 이를 방지하려면 측정기준의 sql 매개변수에서 타임스탬프 데이터를 시간대 변환을 실행하지 않는 타임스탬프 유형으로 명시적으로 변환해야 합니다. 예를 들어 Snowflake 언어에서는 TO_TIMESTAMP 함수를 사용하여 타임스탬프 데이터를 전송할 수 있습니다.

개별 시간 또는 기간 측정기준을 만들 수 있습니다.

단일 dimension_group에서 모두 생성하는 대신 포함할 개별 기간 또는 기간에 대해 하나의 측정기준을 만들 수 있습니다. 일반적으로 Looker의 기간 이름 지정 규칙을 변경하거나 데이터베이스에 미리 계산된 시간 열이 없는 경우 개별 측정기준을 만들지 않을 수 있습니다. 자세한 내용은 측정기준, 필터, 매개변수 유형 문서 페이지를 참고하세요.

한 주의 시작 요일을 변경할 수 있습니다.

기본적으로 Looker의 주는 월요일에 시작됩니다. 모델 수준에서 week_start_day 매개변수를 사용하여 이를 변경할 수 있습니다.

week_start_dayweek_of_year 기간을 지원하지 않습니다. 이 기간은 월요일을 사용하는 ISO 표준을 기반으로 하기 때문입니다.

맞춤 필터와 맞춤 필드는 일부 기간을 지원하지 않습니다.

현재 기간 day_of_week, fiscal_quarter_of_year, millisecond, millisecondX, microsecond, month_name, quarter_of_year, time_of_day맞춤 필터 또는 맞춤 입력란에서 지원되지 않습니다.

월, 분기, 연도 간격은 완료 기간만 계산합니다.

duration 측정기준 그룹의 month 간격은 종료일이 시작일보다 크거나 같을 때만 1개월이 지난 것으로 간주합니다. 예를 들면 다음과 같습니다.

  • 같은 해의 9월 26일과 10월 25일 사이의 월차는 0입니다.
  • 같은 해의 9월 26일과 10월 26일 사이의 개월 차이는 1입니다.

quarteryear 간격은 동일한 로직을 따릅니다.