From ba913012ce76de8a51eda5eea55fa7aa5d798155 Mon Sep 17 00:00:00 2001 From: Christopher Jolly Date: Sun, 8 Oct 2023 01:19:39 +0800 Subject: [PATCH] The default value for DateTime in Jet is 30/12/1899 . When we save if we get a 1/1/001 we translate to this value. When reading we need to do the reverse translation --- src/EFCore.Jet.Data/JetDataReader.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/EFCore.Jet.Data/JetDataReader.cs b/src/EFCore.Jet.Data/JetDataReader.cs index cf03677..8a1e43f 100644 --- a/src/EFCore.Jet.Data/JetDataReader.cs +++ b/src/EFCore.Jet.Data/JetDataReader.cs @@ -167,6 +167,14 @@ namespace EntityFrameworkCore.Jet.Data MidpointRounding.AwayFromZero) * TimeSpan.TicksPerMillisecond)); } + //The 0/default value for a DateTime is 30/12/1899 00:00:00 + //We normally translate 1/01/0001 00:00:00 to 30/12/1899 00:00:00 when saving to the database so this is just the reverse + if (value is DateTime dateTimeValue && dateTimeValue == JetConfiguration.TimeSpanOffset) + { + return default; + } + return (DateTime)value; + } return (DateTime)value; }