c# - PostgreSQL 不保存完整的 DateTimeOffset

标签 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 作为我的数据库,这个测试工作正常。

最佳答案

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

关于c# - PostgreSQL 不保存完整的 DateTimeOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31189006/

相关文章:

c# - xamarin应用程序SIGSEGV错误

c# - FindAsync 返回最近的 1000 个结果

asp.net - 在运行时控制 ASP.NET Web API 中的 [JsonIgnore]

postgresql - 如何为 postgres docker 容器的初始化脚本指定当前工作数据库?

sql - Access - row_number 函数?

c# - : Application' is an ambiguous reference between 'System.Windows.Application' and 'System.Windows.Forms.Application' 错误

c# - 如果列表有多个连续月份,则返回 true

C# 使用 LINQ 解析简单的 XML 文件

c# - 底层提供程序在 Open iis 上失败

java - 在 Java 8 中使用 Hibernate 5+ 的 PostgreSQL 9.6 DATE 列映射