Skip to content

Commit 15e1d94

Browse files
committed
TestHelper: DateTime precision workarouds for Oracle/Mysql
1 parent f76b4c7 commit 15e1d94

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

Orm/Xtensive.Orm.Tests.Framework/TestHelper.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ public static DateTime FixDateTimeForProvider(this DateTime origin, StorageProvi
7070
case StorageProvider.PostgreSql:
7171
divider = 10;
7272
break;
73+
case StorageProvider.Oracle:
74+
divider = 10;
75+
break;
7376
default:
7477
divider = null;
7578
break;
@@ -79,6 +82,17 @@ public static DateTime FixDateTimeForProvider(this DateTime origin, StorageProvi
7982
return origin;
8083
}
8184
var ticks = origin.Ticks;
85+
if (provider == StorageProvider.Oracle) {
86+
var ticks1 = (ticks % divider) >=5 ? ticks - (ticks % divider.Value) + divider.Value
87+
: ticks - (ticks % divider.Value);
88+
return new DateTime(ticks1);
89+
}
90+
if (provider == StorageProvider.MySql) {
91+
var abc = ((ticks % 10000000) / 1000000);
92+
var ticks1 = ((ticks % 10000000) / 1000000) >= 5 ? ticks - (ticks % 10000000) + 10000000
93+
: ticks - (ticks % 10000000);
94+
return new DateTime(ticks1);
95+
}
8296
var newTicks = ticks - (ticks % divider.Value);
8397
return new DateTime(newTicks);
8498
}

0 commit comments

Comments
 (0)