Как сравнить две даты в MS Dynamics AX 2009? - PullRequest
4 голосов
/ 11 августа 2011

Как сравнить две даты (экземпляры типа Date, а не utcDateTime) в MS Dynamics AX 2009?

Я хочу проверить, является ли конкретная дата, взятая из таблицы, до (или после) другой.Оба типа даты.

Есть ли способ преобразовать дату в тип данных utcDateTime?

1 Ответ

6 голосов
/ 12 августа 2011

Как сравнить две даты?

Используйте операторы сравнения < <= >= > == и !=.

if (LedgerTrans.TransDate > systemDateGet() - 3)
    LedgerTrans.TransDate = systemDateGet() - 3; 

Это работает и для селекторов:

select firstonly LedgerTrans 
    where LedgerTrans.TransDate > systemDateGet() - 3;

Работает и для диапазонов ввода запроса: >13-08 будет выбирать даты выбора после 13 августа текущего года.См. Также: http://kashperuk.blogspot.com/2010/02/utcdatetime-in-dynamics-ax-2009.html

Как преобразовать дату в utcDateTime?

DateTimeUtil::newDateTime(systemDateGet(), 0, DateTimeUtil::getUserPreferredTimeZone()));

См. Также: http://msdn.microsoft.com/en-us/library/cc584924.aspx

Нет необходимости преобразовывать Date до utcDateTime для сравнения двух дат.

...