PostgreSQL不保存完整的DateTimeOffset

时间:2015-07-02 15:40:42

标签: c# entity-framework postgresql devart

我遇到了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。例如:

Test output

这是PostgreSQL设置方式的精确问题吗?如果是这样,我能以某种方式改变它吗?如果我使用SqlServer作为我的数据库,这个测试工作正常。

1 个答案:

答案 0 :(得分:3)

如果CreatedOn是PostgreSQL时间戳,则精度为1微秒。 1滴答是0.1微秒。