That was a good point. I did not test if this occurs without ES involved. So, I did that testing. I have VPN access to the server so I created a direct SQL connection from my machine (set to Pacific Time) . Then, I repeated the test with ES. If you are correct then there should be no difference between using ES and a direct SQL connection.
Unfortunately, that is not the result. Without ES, the program works as expected. If I save an appointment at Noon pacific time, then the server saves the value as 3pm Eastern time. When retrieved, it returns to Noon Pacific time.
That same appointment, if retrieved by ES shows up at 9am. It is clear there is something wrong in the transmission of DateTime values across time zones. I am using encryption and compression but not the custom compression (yet). I can change these values if anyone needs me too, but that will impact a lot of people that I work with so I have to make special plans to do that test.
I think if someone at MicroFour follows these steps, they will see the issue.
1. Create a table with date fields using the DDT.
a. Make sure you use Store procedures for Insert/Update/Delete
b. Make sure to use RowVersion for concurrency.
2. Change your Date Time to another time zone but make sure your database server is on another time zone (i.e. don’t do this all on your local machine).
3. Set up an ES connection to your new database, compressed and encrypted using the “out of the box” values.
4. Add new records.
5. Retrieve the records and see what the dates are.
That would mimic my scenario. I bet that you’ll see the issue too.