postgresql 将域中的Utc DateTimeMap到Postgres中不带时区的DateTime

kdfy810k  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(166)

我有一个这样的域类:

public class MyClass
{
    public DateTime CreatedUtc { get; set; }
    ...
}

字符串
当我为Postgres db创建一个迁移时,它会产生这样的结果:

ALTER TABLE "MyClasses" ADD "CreatedUtc" timestamp with time zone NOT NULL DEFAULT TIMESTAMPTZ '-infinity';


但它是一个UTC日期,所以我想存储它没有时区。我该怎么做呢?
使用版本6.0.8的Npgsql.EntityFrameworkCore.Postgres。该域位于.NET Standard 2.0.3库中。

eh57zj3b

eh57zj3b1#

timestamp with time zone是存储UTC时间戳的正确DB列类型。时区的存在意味着timestamp中有UTC偏移(对于UTC,偏移量将始终为零),并且这些时间戳将从DB中加载正确的DateTimeKind.Utc类型。
如果列声明为timestamp without timezone,则值将加载DateTimeKind。未知,没有偏移量,无法区分UTC和非UTC值。
来自Npgsql的详细信息:https://www.npgsql.org/doc/types/datetime.html

相关问题