public void DateFunctions() { using (var context = new BloggingContext(ConnectionString)) { IQueryable <int> oneRow = context.Posts.Where(p => false).Select(p => 1).Concat(new int[] { 1 }); var dateAdds = oneRow.Select(p => new List <DateTime?> { DbFunctions.AddDays(new DateTime(2014, 2, 28), 1), DbFunctions.AddHours(new DateTime(2014, 2, 28, 23, 0, 0), 1), DbFunctions.AddMinutes(new DateTime(2014, 2, 28, 23, 59, 0), 1), DbFunctions.AddSeconds(new DateTime(2014, 2, 28, 23, 59, 59), 1), DbFunctions.AddMilliseconds(new DateTime(2014, 2, 28, 23, 59, 59, 999), 2 - p), DbFunctions.AddMicroseconds(DbFunctions.AddMicroseconds(new DateTime(2014, 2, 28, 23, 59, 59, 999), 500), 500), DbFunctions.AddNanoseconds(new DateTime(2014, 2, 28, 23, 59, 59, 999), 999999 + p), DbFunctions.AddMonths(new DateTime(2014, 2, 1), 1), DbFunctions.AddYears(new DateTime(2013, 3, 1), 1) }).First(); foreach (var result in dateAdds) { Assert.IsTrue(result.Value == new DateTime(2014, 3, 1, 0, 0, 0)); } var dateDiffs = oneRow.Select(p => new { a = DbFunctions.DiffDays(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), b = DbFunctions.DiffHours(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), c = DbFunctions.DiffMinutes(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), d = DbFunctions.DiffSeconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), e = DbFunctions.DiffMilliseconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), f = DbFunctions.DiffMicroseconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), g = DbFunctions.DiffNanoseconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)), h = DbFunctions.DiffMonths(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(3000, 1, 1, 0, 0, 0)), i = DbFunctions.DiffYears(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(3000, 1, 1, 0, 0, 0)), j = DbFunctions.DiffYears(null, new DateTime(2000, 1, 1)), k = DbFunctions.DiffMinutes(new TimeSpan(1, 2, 3), new TimeSpan(4, 5, 6)), l = DbFunctions.DiffMinutes(new TimeSpan(1, 2, 3), null) }).First(); Assert.AreEqual(dateDiffs.a, 1); Assert.AreEqual(dateDiffs.b, 1); Assert.AreEqual(dateDiffs.c, 1); Assert.AreEqual(dateDiffs.d, 1); Assert.AreEqual(dateDiffs.e, 1); Assert.AreEqual(dateDiffs.f, 1000); Assert.AreEqual(dateDiffs.g, 1000000); Assert.AreEqual(dateDiffs.h, 12001); Assert.AreEqual(dateDiffs.i, 1001); Assert.AreEqual(dateDiffs.j, null); Assert.AreEqual(dateDiffs.k, 183); Assert.AreEqual(dateDiffs.l, null); } }
public void TimeDiffMicroseconds() { TimeSpan time = stored.Add(TimeSpan.FromTicks(-10)); #if !EFOLD var q = this.Entities .Where(x => DbFunctions.DiffMicroseconds(time, x.Time) == 1); #else var q = this.Entities .Where(x => EntityFunctions.DiffMicroseconds(time, x.Time) == 1); #endif q.Should().NotBeEmpty(); }
public void DateTimeDiffMicroseconds() { DateTime date = stored.AddTicks(-10); #if !EFOLD var q = this.Entities .Where(x => DbFunctions.DiffMicroseconds(date, x.DateTime) == 1); #else var q = this.Entities .Where(x => EntityFunctions.DiffMicroseconds(date, x.DateTime) == 1); #endif q.Should().NotBeEmpty(); }
public void DbFunctionsTests_DiffMicroseconds_DateTime_Test() { this.AssertException <NotSupportedException>(() => { this.GetOrderQuery().Select(x => DbFunctions.DiffMicroseconds(this.TestDateTime, this.TestDateTime)).First(); }); }