|
|
|
@ -8,7 +8,7 @@ |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* IDENTIFICATION |
|
|
|
* 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 |
|
|
|
#ifdef HAVE_INT64_TIMESTAMP |
|
|
|
sprintf(str + strlen(str), ":%02d.%06d", tm->tm_sec, fsec); |
|
|
|
sprintf(str + strlen(str), ":%02d.%06d", tm->tm_sec, fsec); |
|
|
|
#else |
|
|
|
#else |
|
|
|
sprintf(str + strlen(str), ":%013.10f", tm->tm_sec + fsec); |
|
|
|
sprintf(str + strlen(str), ":%012.9f", tm->tm_sec + fsec); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
/* chop off trailing pairs of zeros... */ |
|
|
|
TrimTrailingZeros(str); |
|
|
|
while (strcmp((str + strlen(str) - 2), "00") == 0 && |
|
|
|
|
|
|
|
*(str + strlen(str) - 3) != '.') |
|
|
|
|
|
|
|
*(str + strlen(str) - 2) = '\0'; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
sprintf(str + strlen(str), ":%02d", tm->tm_sec); |
|
|
|
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)); |
|
|
|
sprintf(cp, ".%06d", Abs(fsec)); |
|
|
|
#else |
|
|
|
#else |
|
|
|
fsec += tm->tm_sec; |
|
|
|
fsec += tm->tm_sec; |
|
|
|
sprintf(cp, ":%013.10f", fabs(fsec)); |
|
|
|
sprintf(cp, ":%012.9f", fabs(fsec)); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
TrimTrailingZeros(cp); |
|
|
|
TrimTrailingZeros(cp); |
|
|
|
cp += strlen(cp); |
|
|
|
cp += strlen(cp); |
|
|
|
|