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