提交 13123c07 authored 作者: Evgenij Ryazanov's avatar Evgenij Ryazanov

Adjust nanoseconds in PgServer

上级 899ffe76
......@@ -625,14 +625,17 @@ public class PgServerThread implements Runnable {
writeInt(8);
long m = t.getTime();
m += TimeZone.getDefault().getOffset(m);
m = toPostgreSeconds(m);
int nanos = t.getNanos();
if (m < 0 && nanos != 0) {
m--;
}
if (INTEGER_DATE_TYPES) {
// long format
m = toPostgreSeconds(m);
m = m * 1000000 + t.getNanos() / 1000;
m = m * 1000000 + nanos / 1000;
} else {
// double format
m = toPostgreSeconds(m);
m = Double.doubleToLongBits(m + t.getNanos() * 0.000000001);
m = Double.doubleToLongBits(m + nanos * 0.000000001);
}
writeInt((int) (m >>> 32));
writeInt((int) m);
......
......@@ -473,9 +473,15 @@ public class TestPgServer extends TestBase {
stat.execute(
"create table test(x1 date, x2 time, x3 timestamp)");
Date[] dates = { null, Date.valueOf("2017-02-20") };
Time[] times = { null, Time.valueOf("14:15:16") };
Timestamp[] timestamps = { null, Timestamp.valueOf("2017-02-20 14:15:16.763") };
Date[] dates = { null, Date.valueOf("2017-02-20"),
Date.valueOf("1970-01-01"), Date.valueOf("1969-12-31"),
Date.valueOf("1940-01-10"), Date.valueOf("1950-11-10") };
Time[] times = { null, Time.valueOf("14:15:16"),
Time.valueOf("00:00:00"), Time.valueOf("23:59:59"),
Time.valueOf("00:10:59"), Time.valueOf("08:30:42") };
Timestamp[] timestamps = { null, Timestamp.valueOf("2017-02-20 14:15:16.763"),
Timestamp.valueOf("1970-01-01 00:00:00"), Timestamp.valueOf("1969-12-31 23:59:59"),
Timestamp.valueOf("1940-01-10 00:10:59"), Timestamp.valueOf("1950-11-10 08:30:42.12") };
int count = dates.length;
PreparedStatement ps = conn.prepareStatement(
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论