When mapping an OffsetDateTime field to an SQL Server DATETIMEOFFSET column, the value is saved incorrectly: The offset gets replaced by the JVM's default system time zone, resulting in a different point in time being persisted. The only instance when the persisted date is correct is when the original offset of the OffsetDateTime value is happens to be the same as the system time zone offset (i.e. OffsetDateTime vales with zero offset are saved correctly if and only if the system time zone is set to UTC). I have created a test project to demonstrate the issue based on Spring Boot using Testcontainers for the SQL Server dependency, so it should require zero setup provided that you already have a docker daemon running. Running gradlew test should be all you have to do (takes a few minutes on first try for Docker magic to happen). |