From e40954958676198d2adaa3ac0dbe38c89060c9fb Mon Sep 17 00:00:00 2001 From: Wang Yuxuan Date: Mon, 18 Nov 2024 15:57:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D!6429=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E7=9A=84to=5Fchar=E5=A4=84=E7=90=86interval=E5=85=A5=E5=8F=82?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=9C=89=E5=B7=AE=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/adt/formatting.cpp | 2 +- src/test/regress/expected/hw_functions.out | 18 ++++++++++++++++++ src/test/regress/sql/hw_functions.sql | 3 +++ 3 files changed, 22 insertions(+), 1 deletion(-) 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') ;