aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/datetime.c11
-rw-r--r--src/interfaces/ecpg/pgtypeslib/interval.c2
-rw-r--r--src/test/regress/expected/horology.out40
3 files changed, 25 insertions, 28 deletions
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 53026363a13..260c8abb341 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.149 2005/05/27 15:16:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.150 2005/05/27 21:31:23 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -3461,12 +3461,9 @@ EncodeTimeOnly(struct pg_tm * tm, fsec_t fsec, int *tzp, int style, char *str)
#ifdef HAVE_INT64_TIMESTAMP
sprintf(str + strlen(str), ":%02d.%06d", tm->tm_sec, fsec);
#else
- sprintf(str + strlen(str), ":%013.10f", tm->tm_sec + fsec);
+ sprintf(str + strlen(str), ":%012.9f", tm->tm_sec + fsec);
#endif
- /* chop off trailing pairs of zeros... */
- while (strcmp((str + strlen(str) - 2), "00") == 0 &&
- *(str + strlen(str) - 3) != '.')
- *(str + strlen(str) - 2) = '\0';
+ TrimTrailingZeros(str);
}
else
sprintf(str + strlen(str), ":%02d", tm->tm_sec);
@@ -3804,7 +3801,7 @@ EncodeInterval(struct pg_tm * tm, fsec_t fsec, int style, char *str)
sprintf(cp, ".%06d", Abs(fsec));
#else
fsec += tm->tm_sec;
- sprintf(cp, ":%013.10f", fabs(fsec));
+ sprintf(cp, ":%012.9f", fabs(fsec));
#endif
TrimTrailingZeros(cp);
cp += strlen(cp);
diff --git a/src/interfaces/ecpg/pgtypeslib/interval.c b/src/interfaces/ecpg/pgtypeslib/interval.c
index f5b2b2573f2..a5e9673b10d 100644
--- a/src/interfaces/ecpg/pgtypeslib/interval.c
+++ b/src/interfaces/ecpg/pgtypeslib/interval.c
@@ -511,7 +511,7 @@ EncodeInterval(struct tm * tm, fsec_t fsec, int style, char *str)
sprintf(cp, ".%06d", Abs(fsec));
#else
fsec += tm->tm_sec;
- sprintf(cp, ":%013.10f", fabs(fsec));
+ sprintf(cp, ":%012.9f", fabs(fsec));
#endif
TrimTrailingZeros(cp);
cp += strlen(cp);
diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out
index ca8bc3d0e5c..c0a7f6e5b83 100644
--- a/src/test/regress/expected/horology.out
+++ b/src/test/regress/expected/horology.out
@@ -205,62 +205,62 @@ SET DateStyle = 'ISO';
-- As of 7.4, allow time without time zone having a time zone specified
SELECT time without time zone '040506.789+08';
time
----------------
- 04:05:06.7890
+--------------
+ 04:05:06.789
(1 row)
SELECT time without time zone '040506.789-08';
time
----------------
- 04:05:06.7890
+--------------
+ 04:05:06.789
(1 row)
SELECT time without time zone 'T040506.789+08';
time
----------------
- 04:05:06.7890
+--------------
+ 04:05:06.789
(1 row)
SELECT time without time zone 'T040506.789-08';
time
----------------
- 04:05:06.7890
+--------------
+ 04:05:06.789
(1 row)
SELECT time with time zone '040506.789+08';
timetz
-------------------
- 04:05:06.7890+08
+-----------------
+ 04:05:06.789+08
(1 row)
SELECT time with time zone '040506.789-08';
timetz
-------------------
- 04:05:06.7890-08
+-----------------
+ 04:05:06.789-08
(1 row)
SELECT time with time zone 'T040506.789+08';
timetz
-------------------
- 04:05:06.7890+08
+-----------------
+ 04:05:06.789+08
(1 row)
SELECT time with time zone 'T040506.789-08';
timetz
-------------------
- 04:05:06.7890-08
+-----------------
+ 04:05:06.789-08
(1 row)
SELECT time with time zone 'T040506.789 +08';
timetz
-------------------
- 04:05:06.7890+08
+-----------------
+ 04:05:06.789+08
(1 row)
SELECT time with time zone 'T040506.789 -08';
timetz
-------------------
- 04:05:06.7890-08
+-----------------
+ 04:05:06.789-08
(1 row)
SET DateStyle = 'Postgres, MDY';