8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.130 2004/06/03 02:08 :04 tgl Exp $
11
+ * $PostgreSQL: pgsql/src/backend/utils/adt/datetime.c,v 1.131 2004/07/11 04:57 :04 tgl Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
@@ -3521,19 +3521,18 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3521
3521
if (fsec != 0 )
3522
3522
{
3523
3523
sprintf ((str + strlen (str )), ":%02d.%06d" , tm -> tm_sec , fsec );
3524
+ TrimTrailingZeros (str );
3525
+ }
3524
3526
#else
3525
3527
if ((fsec != 0 ) && (tm -> tm_year > 0 ))
3526
3528
{
3527
3529
sprintf ((str + strlen (str )), ":%09.6f" , tm -> tm_sec + fsec );
3528
- #endif
3529
3530
TrimTrailingZeros (str );
3530
3531
}
3532
+ #endif
3531
3533
else
3532
3534
sprintf ((str + strlen (str )), ":%02d" , tm -> tm_sec );
3533
3535
3534
- if (tm -> tm_year <= 0 )
3535
- sprintf ((str + strlen (str )), " BC" );
3536
-
3537
3536
/*
3538
3537
* tzp == NULL indicates that we don't want *any* time zone
3539
3538
* info in the output string. *tzn != NULL indicates that we
@@ -3546,6 +3545,9 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3546
3545
min = ((abs (* tzp ) / 60 ) % 60 );
3547
3546
sprintf ((str + strlen (str )), ((min != 0 ) ? "%+03d:%02d" : "%+03d" ), hour , min );
3548
3547
}
3548
+
3549
+ if (tm -> tm_year <= 0 )
3550
+ sprintf ((str + strlen (str )), " BC" );
3549
3551
break ;
3550
3552
3551
3553
case USE_SQL_DATES :
@@ -3571,19 +3573,18 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3571
3573
if (fsec != 0 )
3572
3574
{
3573
3575
sprintf ((str + strlen (str )), ":%02d.%06d" , tm -> tm_sec , fsec );
3576
+ TrimTrailingZeros (str );
3577
+ }
3574
3578
#else
3575
3579
if ((fsec != 0 ) && (tm -> tm_year > 0 ))
3576
3580
{
3577
3581
sprintf ((str + strlen (str )), ":%09.6f" , tm -> tm_sec + fsec );
3578
- #endif
3579
3582
TrimTrailingZeros (str );
3580
3583
}
3584
+ #endif
3581
3585
else
3582
3586
sprintf ((str + strlen (str )), ":%02d" , tm -> tm_sec );
3583
3587
3584
- if (tm -> tm_year <= 0 )
3585
- sprintf ((str + strlen (str )), " BC" );
3586
-
3587
3588
if ((tzp != NULL ) && (tm -> tm_isdst >= 0 ))
3588
3589
{
3589
3590
if (* tzn != NULL )
@@ -3595,6 +3596,9 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3595
3596
sprintf ((str + strlen (str )), ((min != 0 ) ? "%+03d:%02d" : "%+03d" ), hour , min );
3596
3597
}
3597
3598
}
3599
+
3600
+ if (tm -> tm_year <= 0 )
3601
+ sprintf ((str + strlen (str )), " BC" );
3598
3602
break ;
3599
3603
3600
3604
case USE_GERMAN_DATES :
@@ -3617,19 +3621,18 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3617
3621
if (fsec != 0 )
3618
3622
{
3619
3623
sprintf ((str + strlen (str )), ":%02d.%06d" , tm -> tm_sec , fsec );
3624
+ TrimTrailingZeros (str );
3625
+ }
3620
3626
#else
3621
3627
if ((fsec != 0 ) && (tm -> tm_year > 0 ))
3622
3628
{
3623
3629
sprintf ((str + strlen (str )), ":%09.6f" , tm -> tm_sec + fsec );
3624
- #endif
3625
3630
TrimTrailingZeros (str );
3626
3631
}
3632
+ #endif
3627
3633
else
3628
3634
sprintf ((str + strlen (str )), ":%02d" , tm -> tm_sec );
3629
3635
3630
- if (tm -> tm_year <= 0 )
3631
- sprintf ((str + strlen (str )), " BC" );
3632
-
3633
3636
if ((tzp != NULL ) && (tm -> tm_isdst >= 0 ))
3634
3637
{
3635
3638
if (* tzn != NULL )
@@ -3641,6 +3644,9 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3641
3644
sprintf ((str + strlen (str )), ((min != 0 ) ? "%+03d:%02d" : "%+03d" ), hour , min );
3642
3645
}
3643
3646
}
3647
+
3648
+ if (tm -> tm_year <= 0 )
3649
+ sprintf ((str + strlen (str )), " BC" );
3644
3650
break ;
3645
3651
3646
3652
case USE_POSTGRES_DATES :
@@ -3671,20 +3677,20 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3671
3677
if (fsec != 0 )
3672
3678
{
3673
3679
sprintf ((str + strlen (str )), ":%02d.%06d" , tm -> tm_sec , fsec );
3680
+ TrimTrailingZeros (str );
3681
+ }
3674
3682
#else
3675
3683
if ((fsec != 0 ) && (tm -> tm_year > 0 ))
3676
3684
{
3677
3685
sprintf ((str + strlen (str )), ":%09.6f" , tm -> tm_sec + fsec );
3678
- #endif
3679
3686
TrimTrailingZeros (str );
3680
3687
}
3688
+ #endif
3681
3689
else
3682
3690
sprintf ((str + strlen (str )), ":%02d" , tm -> tm_sec );
3683
3691
3684
3692
sprintf ((str + strlen (str )), " %04d" ,
3685
3693
((tm -> tm_year > 0 ) ? tm -> tm_year : - (tm -> tm_year - 1 )));
3686
- if (tm -> tm_year <= 0 )
3687
- sprintf ((str + strlen (str )), " BC" );
3688
3694
3689
3695
if ((tzp != NULL ) && (tm -> tm_isdst >= 0 ))
3690
3696
{
@@ -3704,11 +3710,14 @@ EncodeDateTime(struct pg_tm * tm, fsec_t fsec, int *tzp, char **tzn, int style,
3704
3710
sprintf ((str + strlen (str )), ((min != 0 ) ? " %+03d:%02d" : " %+03d" ), hour , min );
3705
3711
}
3706
3712
}
3713
+
3714
+ if (tm -> tm_year <= 0 )
3715
+ sprintf ((str + strlen (str )), " BC" );
3707
3716
break ;
3708
3717
}
3709
3718
3710
3719
return TRUE;
3711
- } /* EncodeDateTime() */
3720
+ }
3712
3721
3713
3722
3714
3723
/* EncodeInterval()
0 commit comments