diff --git a/src/common/backend/utils/adt/formatting.cpp b/src/common/backend/utils/adt/formatting.cpp index 95d5b050f..d31bb4321 100644 --- a/src/common/backend/utils/adt/formatting.cpp +++ b/src/common/backend/utils/adt/formatting.cpp @@ -2259,7 +2259,7 @@ static void parse_format( #define A_FORMAT_INTERVAL_YEAR2 "YY-MM" #define A_FORMAT_INTERVAL_YEAR3 "YYY-MM" #define A_FORMAT_INTERVAL_YEAR "YYYY-MM" -#define A_FORMAT_INTERVAL_DAY "DD HH:MI:SS" +#define A_FORMAT_INTERVAL_DAY "DD HH24:MI:SS" #define POSITIVE_FORMAT(fmt) ("+" fmt) #define NEGETIVE_FORMAT(fmt) ("-" fmt) diff --git a/src/test/regress/expected/hw_functions.out b/src/test/regress/expected/hw_functions.out index e45916a16..bd5f7ebc6 100644 --- a/src/test/regress/expected/hw_functions.out +++ b/src/test/regress/expected/hw_functions.out @@ -838,6 +838,24 @@ SELECT TO_CHAR(INTERVAL '1 -11:11:11' DAY TO SECOND, 'YYYY-MON-DD'); +01 11:11:11 (1 row) +SELECT TO_CHAR(INTERVAL '1 15h 24m 52s' DAY TO SECOND, 'YYYY-MON-DD'); + to_char +-------------- + +01 15:24:52 +(1 row) + +select to_char(interval '15h 24m 52s', 'HH24:MI:SS'); + to_char +-------------- + +00 15:24:52 +(1 row) + +SELECT TO_CHAR(INTERVAL '-15h 24m 52s' DAY TO SECOND, 'YYYY-MON-DD'); + to_char +-------------- + -00 15:24:52 +(1 row) + SELECT TO_CHAR(INTERVAL '-11:11:11' DAY TO SECOND, 'YYYY-MON-DD'); to_char -------------- diff --git a/src/test/regress/sql/hw_functions.sql b/src/test/regress/sql/hw_functions.sql index 7bc6ad93a..da832ba98 100644 --- a/src/test/regress/sql/hw_functions.sql +++ b/src/test/regress/sql/hw_functions.sql @@ -338,6 +338,9 @@ SELECT TO_CHAR(INTERVAL '123-2' YEAR(4) TO MONTH, 'YYY-MON', 'NLS_DATE_LANGUAGE SELECT TO_CHAR(INTERVAL '-1-2' YEAR TO MONTH, 'YYY-MON'); SELECT TO_CHAR(INTERVAL '1 11:11:11' DAY TO SECOND, 'YYYY-MON-DD'); SELECT TO_CHAR(INTERVAL '1 -11:11:11' DAY TO SECOND, 'YYYY-MON-DD'); +SELECT TO_CHAR(INTERVAL '1 15h 24m 52s' DAY TO SECOND, 'YYYY-MON-DD'); +select to_char(interval '15h 24m 52s', 'HH24:MI:SS'); +SELECT TO_CHAR(INTERVAL '-15h 24m 52s' DAY TO SECOND, 'YYYY-MON-DD'); SELECT TO_CHAR(INTERVAL '-11:11:11' DAY TO SECOND, 'YYYY-MON-DD'); SELECT TO_CHAR(INTERVAL '-1-2' YEAR TO MONTH, 'YYYY-MON-DD', '') ; SELECT TO_CHAR(INTERVAL '-1-2' YEAR TO MONTH, '', 'NLS_DATE_LANGUAGE=ENGLISH') ;