public static void Main()
var format = "yyyy-MM-ddTHH:mm:sszzz";
var origOffset = new TimeSpan(5, 0, 0);
var origDateTimeOffset = new DateTimeOffset(2022, 11, 09, 17, 0, 0, origOffset);
var origDateTime = origDateTimeOffset.UtcDateTime;
var origDateString = origDateTimeOffset.ToString(format);
var origDateTimeString = origDateTime.ToString(format);
Console.WriteLine("Factory Created DateTimeOffset (IST).........................: " + origDateString);
Console.WriteLine("Factory Created DateTime (Adjusted to UTC)...................: " + origDateTimeString);
var origDbDateOffset = origDateTimeOffset.ToUniversalTime();
var origDbDateOffsetString = origDbDateOffset.ToString(format);
var origDbDateTime = origDbDateOffset.UtcDateTime;
var origDbDateTimeString = origDbDateTime.ToString(format);
Console.WriteLine("Factory Created Value in Database DateTimeOffset (UTC).......: " + origDbDateOffsetString);
Console.WriteLine("Factory Created Value in Database DateTime (UTC).............: " + origDbDateTimeString);
var callerOffset = new TimeSpan(-5, 0, 0);
var callerDate = new DateTimeOffset(2022, 11, 09, 7, 0, 0, callerOffset);
var callerDateString = callerDate.ToString(format);
Console.WriteLine("Caller Query Date (EST)......................................: " + callerDateString);
var callerDbDate = callerDate.ToUniversalTime();
string sql = "select * from factory where createddate = '"+callerDbDate.ToString(format)+"'";
Console.WriteLine("\n" +sql);
if (origDateTimeOffset.Equals(origDbDateOffset) && origDbDateOffset.Equals(callerDate) && callerDate.Equals(callerDbDate) && origDateTime.Equals(origDbDateTime))
Console.WriteLine("All dates are equal");
Console.WriteLine("All dates are NOT equal");