14.07.2010, 15:11 | #1 |
Модератор
|
CreatedDateTime и ModifiedDateTime (Ax2009SP1)
В таблице VendTable включены системные поля CREATEDDATETIME и MODIFIEDDATETIME
Если смотреть через "Обозреватель таблиц" одну запись то у полей значения: CreatedDateTime = 14.07.2010 13:05:04 ModifiedDateTime = 14.07.2010 13:50:22 Запрос по таблице dbo.VENDTABLE в этой же БД выдает: CREATEDDATETIME = 2010-07-14 09:05:04.000 MODIFIEDDATETIME = 2010-07-14 09:50:22.000 Почему отличие на 4 часа? В "Основное -- Настройк -- Данные о компании" часовой пояс: (GMT+03:00) Москва, Санкт-Петербург, Волгоград Кто может пояснить по какому принципу формируется время в CREATEDDATETIME и MODIFIEDDATETIME ? P.S. Ax 2009 Sp1 EE Ru5
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
14.07.2010, 15:19 | #2 |
Axapta
|
Летнее московское время - UTC+4. Если поставить в винде зимний месяц, то разница будет три часа.
|
|
|
За это сообщение автора поблагодарили: Poleax (1). |
14.07.2010, 15:29 | #3 |
Участник
|
Все довольно подробно описано здесь:
http://kashperuk.blogspot.com/2010/0...s-ax-2009.html Смотрите также комментарии, в них дополнительные сведения иногда. |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
14.07.2010, 16:03 | #4 |
Модератор
|
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
07.09.2010, 18:52 | #5 |
Участник
|
На данный момент я не очень догоняю как DAX2009 записывает CreatedDateTime если 2 клиента находяться в разных поясах ... в SQL будет храниться дата UTC-0????
|
|
07.09.2010, 18:57 | #6 |
Axapta
|
Именно так. В базе данных всегда хранится UTC. А при выводе на форме уже конвертируется исходя из часового пояса пользователя. Я еще раз дам ссылку на хороший FAQ Ивана.
http://kashperuk.blogspot.com/2010/0...s-ax-2009.html Цитата:
Q: How is the UtcDateTime stored in the database? Is it displayed the same way on forms?
A: The UtcDateTime fields are in the database always stored in Coordinated Universal time (UTC). Whenever displayed on forms and bound to table fields, the data is converted to the user's preferred timezone. Note, that you need to take care of the conversion yourself, if the control is not bound to a field. For an example, see the init method of the tutorial form. |
|
|
За это сообщение автора поблагодарили: 4avez (1). |
12.07.2011, 09:42 | #7 |
Участник
|
Привет всем!
Так чего же делать, если CreatedDateTime в Аксапте не совпадает с CreatedDateTime в базе данных. Летом прогонять джоб, который у всех пользователей проставляет часовой пояс "(GMT-01:00) Азорские острова", а зимой прогонять джоб, которы проставляет часовой пояс "(GMT) Среднее время по Гринвичу : Дублин, Эдинбург, Лиссабон, Лондон" ? Извините конечно за столь глупый вопрос, но я для себя только начинаю открывать новые горизонты. Да и западнее Смоленска я никогда не был, поэтому мне все равно, какой у меня пояс, главное чтобы данные нормально отображались Пользователи часто смотрят историю изменений документов через журнал базы данных, поэтому для них правильное время очень важно. |
|
12.07.2011, 10:30 | #8 |
Участник
|
Не совсем понятно, а зачем что-то двигать?
У пользователя время отображается (и фильтруется тоже) в зависимости от настроек часового пояса самого пользователя (в Аксапте) Или у вас пользователи напрямую в базу данных смотрят?
__________________
Axapta v.3.0 sp5 kr2 |
|
12.07.2011, 10:55 | #9 |
Участник
|
Мне тоже не совсем понятно. Раз так надо, значит надо. Меня Аксапта кормит, и я готов смириться, если это того требует.
Просто сейчас переношу данные из АХ30 в АХ2009, столкнулся с тем, что в обозревателе таблиц время на 4 часа больше, чем в базе. В принципе, могу так и оставить. Но требуется время, чтобы смириться с этим Как вот быть с датами в OLAP'е потом? Возможно, это будет следующая ступень осмысления. Последний раз редактировалось Ace of Database; 12.07.2011 в 10:57. |
|
12.07.2011, 11:13 | #10 |
Участник
|
Хм.
Так в базе время должно храниться по Гринвичу, т.е. по UTC. Тогда в Аксапте будет автоматически учитываться смещение и выводиться правильный результат. А переносите за AX30 стандартными скриптами или своими средствами?
__________________
Axapta v.3.0 sp5 kr2 |
|
12.07.2011, 11:24 | #11 |
Участник
|
Переносим своими средствами.
А как в OLAP'е смотреть такие даты по Гринвичу? |
|
12.07.2011, 15:43 | #12 |
Участник
|
Кстати, по поводу UTC и DST (летнего времени)
Если в DAX2009 сейчас сохранить дату >= 30.10.2011 03:00, соответствующую старому зимнему времени, то она будет сохранена неверно (UTC+3). Win7 и Win2008 R2 со всеми установленными апдейтами до сих пор грозят перевести стрелки обратно 30 октября в 3 часа PS Я имею в виду для Россиии.
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 12.07.2011 в 15:57. |
|