Я столкнулся с тем, что кажется ошибкой с PostgreSQL или библиотекой соединений базы данных Devart. Ниже простой тест приложение, которое я создал:PostgreSQL не сохраняет полную дату DateTimeOffset
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 в качестве моей базы данных.
Я вижу, есть ли способ увеличить точность метки времени? Я принимаю не – GBreen12
Вы можете хранить тики. Для ваших временных меток достаточно целого числа 64 бит (bigint). Если вам не нравится использовать тики в вашей программе, вы можете сохранить тики в качестве поля поддержки, а затем использовать поле DateTime, а не отображаемое. – bubi
. Хорошо, мне, возможно, придется это сделать. Спасибо за помощь – GBreen12