|
![]() |
#1 |
Участник
|
Сохранение в БД значений в формате UTCDateTime
Здравствуйте.
Столкнулся с ситуацией: есть кастомная таблица с полем типа UTCTimestamp. Когда создаю в ней поле (вызываю класс с диалоговым окном), в котором указываю дату и время, затем, никак не обрабатывая введённые значения делаю insert и вижу на форме значение на 4 часа больше (у меня указан в настройках клиента предпочтительный часовой пояс +04:00). В таблице на SQL Server время указано в том виде, как я его ввёл. И если указать в настройках клиента часовой пояс +00:00 время отображается правильно. Я верно понимаю, что это происходит именно из-за того, что я при присвоении значения из диалога полю таблицы, не вычитаю смещение часового пояса? Dynamics Ax 2012 R3. |
|
![]() |
#2 |
Участник
|
Да, совершенно верно.
Поля, привязанные к датасорсу, сами это делают. А вот значения, введенные в поле формы, не привязанное к датасорсу имеют значение, включающее смещение UTC текущего пользователя. Соответственно, для сохранения в базу данных это значение нужно очищать от смещения текущего пользователя. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2), mikki_messer (1). |
![]() |
#3 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
![]() Да, совершенно верно.
Поля, привязанные к датасорсу, сами это делают. А вот значения, введенные в поле формы, не привязанное к датасорсу имеют значение, включающее смещение UTC текущего пользователя. Соответственно, для сохранения в базу данных это значение нужно очищать от смещения текущего пользователя. X++: tableName.UtcDateTimeField = DateTimeUtil::removeTimeZoneOffset(dlgDateTime.value(),DateTimeUtil::getUserPreferredTimeZone()); |
|
![]() |
#4 |
Участник
|
На свежую голову почитал что сам написал.
Цитата:
имеют значение, включающее смещение UTC текущего пользователя
|
|
![]() |
#5 |
Участник
|
Я так и понял.
|
|
![]() |
#6 |
Участник
|
Там еще можно в расширенном типе данных, используемом для поля таблицы выставить свойство TimezonePreference
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат! ![]() |
|
|
За это сообщение автора поблагодарили: trud (2), mikki_messer (1). |
Теги |
2012 r3, timezone, utctimestamp, как правильно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|