РЕДАКТИРОВАТЬ: Некоторые пользователи отметили, что это дубликат вопроса ADO.NET на Как я могу получить данные DateTime из SQL Server, игнорируя проблемы с часовыми поясами?
Пожалуйста, ДЕЛАЙТЕПРОЧИТАЙТЕ мои теги и мои коды. Это вопрос nodejs , который не имеет никакого отношения к библиотеке ADO . Это даже не работает на Windows. Опция, указанная по указанной ссылке, даже не существует в mssql-npm
Я создаю базу данных для посещаемости компании, которая охватывает 3 часовых пояса.
Проблема с SQL Server заключается в том, что я читаю рабочее время по-разному для каждого часового пояса. Он регистрируется как 1969-12-31T23:00:00.000Z
и регистрируется как 06:00 для одной временной шкалы и 08:00 для другой. Мне нужно, чтобы это было ровно в 08:00 независимо от часового пояса. Это значит, 08:00 в западной части моей страны, а также 08:00 в восточной части моей страны.
Когда я пытаюсь отключить UseUTC, nodejs дважды переводит мой часовой пояс. Например, это когда я отправил поле masuk
как 08: 00
Отправлено на сервер:
Запрос отправлен на SQL Server:
UPDATE shift SET name = 'Shift 1', masuk = '2019-10-28T01:00:00.000Z', keluar = '2019-10-28T10:00:00.000Z', tolerance = 15 WHERE id = 1
Полученорезультат назад
И показывается пользователю как:
Моя страна работает с GMT + 7 до GMT + 9. Я не против, если мне придется сгладить часовой пояс. Но как это сделать? Есть ли способ прочитать время, полностью игнорируя часовой пояс? Это делает мою работу излишне сложной.
Я использую:
- SQL Server 2012
- UI материала
- date-fns
- Nodejs 12
- модуль mssql
и это мой код для получения времени от пользовательского ввода
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<KeyboardTimePicker
key={component.field.toString()}
variant="inline"
value={value}
label={component.title}
onChange={this.eventHandler(component.field).bind(this)}
format="HH:mm"
/>
</MuiPickersUtilsProvider>
Спасибо за помощь.
База данных использует time(7)
для хранения времени