--- src/backend/utils/adt/timestamp.c +++ src/backend/utils/adt/timestamp.c @@ -2412,7 +2412,7 @@ case DTK_YEAR: tm->tm_mon = 1; case DTK_QUARTER: - tm->tm_mon = (3 * (tm->tm_mon / 4)) + 1; + tm->tm_mon = (3 * ((tm->tm_mon - 1) / 3)) + 1; case DTK_MONTH: tm->tm_mday = 1; case DTK_DAY: @@ -2505,7 +2505,7 @@ case DTK_YEAR: tm->tm_mon = 1; case DTK_QUARTER: - tm->tm_mon = (3 * (tm->tm_mon / 4)) + 1; + tm->tm_mon = (3 * ((tm->tm_mon - 1) / 3)) + 1; case DTK_MONTH: tm->tm_mday = 1; case DTK_DAY: @@ -2598,7 +2598,7 @@ case DTK_YEAR: tm->tm_mon = 0; case DTK_QUARTER: - tm->tm_mon = (3 * (tm->tm_mon / 4)); + tm->tm_mon = (3 * (tm->tm_mon / 3)); case DTK_MONTH: tm->tm_mday = 0; case DTK_DAY: @@ -3175,7 +3175,7 @@ break; case DTK_QUARTER: - result = (tm->tm_mon / 4) + 1; + result = (tm->tm_mon / 3) + 1; break; case DTK_YEAR: