Я живу в Аризоне, MST без DST, если это имеет значение.
У меня есть две разные Oracle Базы данных, в которых хранится список праздников и выходных. Столбец, в котором хранятся данные, имеет формат DATE, без значения времени.
Но когда я использую API, чтобы вызвать первый дБ для праздников в январе 2021 года, он сообщает дату праздника в полночь. Но когда я вызываю все праздники в январе 2021 года на втором БД, он сообщает, что в качестве даты всех праздников 7 утра.
Запрос, который использует БД:
SELECT * FROM CLPUSER.HOL_DT WHERE TRIM(HOL_DT) >= ? AND TRIM(HOL_DT) <= ?";
используя Vertx-jdb c при вызове базы данных. Я дважды проверил конфигурацию API и базы данных, все используют MST.
Вот значения, которые возвращаются из вызова API
DB1
"publicHolidayList": [
"holidayDate": "2021-01-01T00:00:00Z",
"holidayDate": "2021-01-02T00:00:00Z",
"holidayDate": "2021-01-03T00:00:00Z"
...
]
DB2
"publicHolidayList": [
"holidayDate": "2021-01-02T07:00:00Z",
"holidayDate": "2021-01-03T07:00:00Z"
...
"holidayDate": "2021-01-01T07:00:00Z" //appears at bottom
]
Редактировать: Просто отлаживал код, пока не узнал, как vertx jdb c читает его из подчеркивающей библиотеки JDB C, он читает HOL_DT из jdb c как TIMESTAMP, когда БД хранит его как формат даты. Когда он это делает, он конвертируется в ZoneDateTime в UT C, давая его значение времени.