Merge pull request #7710 from taosdata/fix/TD-6408
[TD-6408]<fix>: fixed json error when timestamp was before Epoch
This commit is contained in:
commit
c5090ac017
|
@ -272,26 +272,35 @@ void httpJsonTimestamp(JsonBuf* buf, int64_t t, int32_t timePrecision) {
|
|||
|
||||
switch (timePrecision) {
|
||||
case TSDB_TIME_PRECISION_MILLI: {
|
||||
mod = ((t) % 1000 + 1000) % 1000;
|
||||
if (t < 0 && mod != 0) {
|
||||
t -= 1000;
|
||||
}
|
||||
quot = t / 1000;
|
||||
fractionLen = 5;
|
||||
format = ".%03" PRId64;
|
||||
mod = t % 1000;
|
||||
break;
|
||||
}
|
||||
|
||||
case TSDB_TIME_PRECISION_MICRO: {
|
||||
mod = ((t) % 1000000 + 1000000) % 1000000;
|
||||
if (t < 0 && mod != 0) {
|
||||
t -= 1000000;
|
||||
}
|
||||
quot = t / 1000000;
|
||||
fractionLen = 8;
|
||||
format = ".%06" PRId64;
|
||||
mod = t % 1000000;
|
||||
break;
|
||||
}
|
||||
|
||||
case TSDB_TIME_PRECISION_NANO: {
|
||||
mod = ((t) % 1000000000 + 1000000000) % 1000000000;
|
||||
if (t < 0 && mod != 0) {
|
||||
t -= 1000000000;
|
||||
}
|
||||
quot = t / 1000000000;
|
||||
fractionLen = 11;
|
||||
format = ".%09" PRId64;
|
||||
mod = t % 1000000000;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -319,26 +328,35 @@ void httpJsonUtcTimestamp(JsonBuf* buf, int64_t t, int32_t timePrecision) {
|
|||
|
||||
switch (timePrecision) {
|
||||
case TSDB_TIME_PRECISION_MILLI: {
|
||||
mod = ((t) % 1000 + 1000) % 1000;
|
||||
if (t < 0 && mod != 0) {
|
||||
t -= 1000;
|
||||
}
|
||||
quot = t / 1000;
|
||||
fractionLen = 5;
|
||||
format = ".%03" PRId64;
|
||||
mod = t % 1000;
|
||||
break;
|
||||
}
|
||||
|
||||
case TSDB_TIME_PRECISION_MICRO: {
|
||||
mod = ((t) % 1000000 + 1000000) % 1000000;
|
||||
if (t < 0 && mod != 0) {
|
||||
t -= 1000000;
|
||||
}
|
||||
quot = t / 1000000;
|
||||
fractionLen = 8;
|
||||
format = ".%06" PRId64;
|
||||
mod = t % 1000000;
|
||||
break;
|
||||
}
|
||||
|
||||
case TSDB_TIME_PRECISION_NANO: {
|
||||
mod = ((t) % 1000000000 + 1000000000) % 1000000000;
|
||||
if (t < 0 && mod != 0) {
|
||||
t -= 1000000000;
|
||||
}
|
||||
quot = t / 1000000000;
|
||||
fractionLen = 11;
|
||||
format = ".%09" PRId64;
|
||||
mod = t % 1000000000;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue