*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.130 2004/06/03 02:08:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.131 2004/07/11 04:57:04 tgl Exp $
*
*-------------------------------------------------------------------------
*/
if (fsec != 0)
{
sprintf((str + strlen(str)), ":%02d.%06d", tm->tm_sec, fsec);
+ TrimTrailingZeros(str);
+ }
#else
if ((fsec != 0) && (tm->tm_year > 0))
{
sprintf((str + strlen(str)), ":%09.6f", tm->tm_sec + fsec);
-#endif
TrimTrailingZeros(str);
}
+#endif
else
sprintf((str + strlen(str)), ":%02d", tm->tm_sec);
- if (tm->tm_year <= 0)
- sprintf((str + strlen(str)), " BC");
-
/*
* tzp == NULL indicates that we don't want *any* time zone
* info in the output string. *tzn != NULL indicates that we
min = ((abs(*tzp) / 60) % 60);
sprintf((str + strlen(str)), ((min != 0) ? "%+03d:%02d" : "%+03d"), hour, min);
}
+
+ if (tm->tm_year <= 0)
+ sprintf((str + strlen(str)), " BC");
break;
case USE_SQL_DATES:
if (fsec != 0)
{
sprintf((str + strlen(str)), ":%02d.%06d", tm->tm_sec, fsec);
+ TrimTrailingZeros(str);
+ }
#else
if ((fsec != 0) && (tm->tm_year > 0))
{
sprintf((str + strlen(str)), ":%09.6f", tm->tm_sec + fsec);
-#endif
TrimTrailingZeros(str);
}
+#endif
else
sprintf((str + strlen(str)), ":%02d", tm->tm_sec);
- if (tm->tm_year <= 0)
- sprintf((str + strlen(str)), " BC");
-
if ((tzp != NULL) && (tm->tm_isdst >= 0))
{
if (*tzn != NULL)
sprintf((str + strlen(str)), ((min != 0) ? "%+03d:%02d" : "%+03d"), hour, min);
}
}
+
+ if (tm->tm_year <= 0)
+ sprintf((str + strlen(str)), " BC");
break;
case USE_GERMAN_DATES:
if (fsec != 0)
{
sprintf((str + strlen(str)), ":%02d.%06d", tm->tm_sec, fsec);
+ TrimTrailingZeros(str);
+ }
#else
if ((fsec != 0) && (tm->tm_year > 0))
{
sprintf((str + strlen(str)), ":%09.6f", tm->tm_sec + fsec);
-#endif
TrimTrailingZeros(str);
}
+#endif
else
sprintf((str + strlen(str)), ":%02d", tm->tm_sec);
- if (tm->tm_year <= 0)
- sprintf((str + strlen(str)), " BC");
-
if ((tzp != NULL) && (tm->tm_isdst >= 0))
{
if (*tzn != NULL)
sprintf((str + strlen(str)), ((min != 0) ? "%+03d:%02d" : "%+03d"), hour, min);
}
}
+
+ if (tm->tm_year <= 0)
+ sprintf((str + strlen(str)), " BC");
break;
case USE_POSTGRES_DATES:
if (fsec != 0)
{
sprintf((str + strlen(str)), ":%02d.%06d", tm->tm_sec, fsec);
+ TrimTrailingZeros(str);
+ }
#else
if ((fsec != 0) && (tm->tm_year > 0))
{
sprintf((str + strlen(str)), ":%09.6f", tm->tm_sec + fsec);
-#endif
TrimTrailingZeros(str);
}
+#endif
else
sprintf((str + strlen(str)), ":%02d", tm->tm_sec);
sprintf((str + strlen(str)), " %04d",
((tm->tm_year > 0) ? tm->tm_year : -(tm->tm_year - 1)));
- if (tm->tm_year <= 0)
- sprintf((str + strlen(str)), " BC");
if ((tzp != NULL) && (tm->tm_isdst >= 0))
{
sprintf((str + strlen(str)), ((min != 0) ? " %+03d:%02d" : " %+03d"), hour, min);
}
}
+
+ if (tm->tm_year <= 0)
+ sprintf((str + strlen(str)), " BC");
break;
}
return TRUE;
-} /* EncodeDateTime() */
+}
/* EncodeInterval()
| Sat Feb 14 17:32:01 1998 PST
| Sun Feb 15 17:32:01 1998 PST
| Mon Feb 16 17:32:01 1998 PST
- | Thu Feb 16 17:32:01 0096 BC PST
+ | Thu Feb 16 17:32:01 0096 PST BC
| Sun Feb 16 17:32:01 0098 PST
| Fri Feb 16 17:32:01 0598 PST
| Wed Feb 16 17:32:01 1098 PST
| Wed Feb 14 17:32:01 1996 PST
| Thu Feb 15 17:32:01 1996 PST
| Fri Feb 16 17:32:01 1996 PST
- | Mon Feb 16 17:32:01 0098 BC PST
+ | Mon Feb 16 17:32:01 0098 PST BC
| Thu Feb 16 17:32:01 0096 PST
| Tue Feb 16 17:32:01 0596 PST
| Sun Feb 16 17:32:01 1096 PST
| Fri Feb 14 17:32:01 1997 PST
| Sat Feb 15 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
- | Tue Feb 16 17:32:01 0097 BC PST
+ | Tue Feb 16 17:32:01 0097 PST BC
| Sat Feb 16 17:32:01 0097 PST
| Thu Feb 16 17:32:01 0597 PST
| Tue Feb 16 17:32:01 1097 PST
----+---------------------------------
| -infinity
| Wed Dec 31 16:00:00 1969 PST
- | Tue Feb 16 17:32:01 0097 BC PST
+ | Tue Feb 16 17:32:01 0097 PST BC
| Sat Feb 16 17:32:01 0097 PST
| Thu Feb 16 17:32:01 0597 PST
| Tue Feb 16 17:32:01 1097 PST
| Fri Feb 14 17:32:01 1997 PST
| Sat Feb 15 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
- | Tue Feb 16 17:32:01 0097 BC PST
+ | Tue Feb 16 17:32:01 0097 PST BC
| Sat Feb 16 17:32:01 0097 PST
| Thu Feb 16 17:32:01 0597 PST
| Tue Feb 16 17:32:01 1097 PST
| -infinity
| Wed Dec 31 16:00:00 1969 PST
| Thu Jan 02 00:00:00 1997 PST
- | Tue Feb 16 17:32:01 0097 BC PST
+ | Tue Feb 16 17:32:01 0097 PST BC
| Sat Feb 16 17:32:01 0097 PST
| Thu Feb 16 17:32:01 0597 PST
| Tue Feb 16 17:32:01 1097 PST