PostgreSQL 不保存完整的 DateTimeOffset
PostgreSQL doesn't save full DateTimeOffset
我 运行 发现 PostgreSQL 或 Devart 数据库连接库似乎有错误。以下是我创建的一个简单的测试应用程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DateTimeOffsetTest
{
class Program
{
static void Main(string[] args)
{
using (var context = new Context())
{
var e = new Ent() { CreatedOn = DateTimeOffset.Now };
Console.WriteLine(e.CreatedOn.UtcDateTime.Ticks);
context.Ents.Add(e);
context.SaveChanges();
}
using (var context = new Context())
{
var ent = context.Ents.Single();
Console.WriteLine(ent.CreatedOn.UtcDateTime.Ticks);
Console.Read();
context.Ents.Remove(ent);
context.SaveChanges();
}
}
}
}
我希望写入控制台的两行是相同的,但第二行的最后一位数字始终为 0。示例:
这是 PostgreSQL 设置方式的精度问题吗?如果是,我能以某种方式改变它吗?如果我使用 SqlServer 作为我的数据库,这个测试工作正常。
如果 CreatedOn 是 PostgreSQL 时间戳,则精度为 1 微秒。 1 个刻度为 0.1 微秒。
我 运行 发现 PostgreSQL 或 Devart 数据库连接库似乎有错误。以下是我创建的一个简单的测试应用程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DateTimeOffsetTest
{
class Program
{
static void Main(string[] args)
{
using (var context = new Context())
{
var e = new Ent() { CreatedOn = DateTimeOffset.Now };
Console.WriteLine(e.CreatedOn.UtcDateTime.Ticks);
context.Ents.Add(e);
context.SaveChanges();
}
using (var context = new Context())
{
var ent = context.Ents.Single();
Console.WriteLine(ent.CreatedOn.UtcDateTime.Ticks);
Console.Read();
context.Ents.Remove(ent);
context.SaveChanges();
}
}
}
}
我希望写入控制台的两行是相同的,但第二行的最后一位数字始终为 0。示例:
这是 PostgreSQL 设置方式的精度问题吗?如果是,我能以某种方式改变它吗?如果我使用 SqlServer 作为我的数据库,这个测试工作正常。
如果 CreatedOn 是 PostgreSQL 时间戳,则精度为 1 微秒。 1 个刻度为 0.1 微秒。