我有一个这样的域类:
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库中。
1条答案
按热度按时间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