diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 5d0c71a8b9..d5ad4718b1 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -7050,11 +7050,6 @@ date_trunc('field', source
-
- week is not supported for interval>
- values because months usually have fractional weeks.
-
-
Examples:
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index 8593b6b47f..2adc178de4 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -3710,10 +3710,17 @@ interval_trunc(PG_FUNCTION_ARGS)
break;
default:
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("interval units \"%s\" not supported",
- lowunits)));
+ if (val == DTK_WEEK)
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("interval units \"%s\" not supported "
+ "because months usually have fractional weeks",
+ lowunits)));
+ else
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("interval units \"%s\" not supported",
+ lowunits)));
}
if (tm2interval(tm, fsec, result) != 0)