SELECT-Statements mit Datumseinschränkung in AX 2009

Im Zuge eines Upgrades einer Applikation auf Dynamics AX 2009 ist mir ein Stückchen Code über den Weg gelaufen, dessen Code-Upgrade auf den ersten Blick recht einfach sein sollte, sich aber bei genauerer Betrachtung als doch gar nicht so einfach herausgestellt hat.

Und zwar gehts um ein einfaches SELECT-Statement, z.B. wie das folgende:

date myDate = str2date('07.05.2010', 123);

select count(recid)
from salesline
where salesline.createdDate == myDate;

Obiges Statement soll mir einfach eine Zahl der Auftragszeilen liefern, die an einem bestimmten Tag erstellt wurden.

In Dynamics AX 2009 wurde ja das Feld createdDate durch createdDateTime und einen vollständigen neuen Datentyp, der nun auch die Zeit mitspeichert, ersetzt.

Will ich nun in AX 2009 das selbe Statement absetzten, so könnte dies wie folgt aussehen:

date myDate = str2date('07.05.2010', 123);

// version 1
select count(recid)
from salesline
where salesline.createdDateTime >= DateTimeUtil::newDateTime(myDate,0)          // 07.05.2010 00:00:00
   && salesline.createdDateTime <= DateTimeUtil::newDateTime(myDate,60*60*24-1) // 07.05.2010 23:59:59
;

// version 2
select count(recid)
from salesline
where salesline.createdDateTime >= DateTimeUtil::newDateTime(myDate,0)          // 07.05.2010 00:00:00
   && salesline.createdDateTime <  DateTimeUtil::newDateTime(myDate+1,0)        // 08.05.2010 00:00:00
;

Ist das wirklich so, oder übersehe ich hier etwas?

Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2009

Michael Pfenninger 10.03.2011 14:51 | #1

Wir haben das bei unserem Upgrade auch so gemacht. In diesem Zusammenhang sei noch der Timezone-Offset erwähnt. Dieser kann einem auch noch übel mitspielen. Details dazu habe ich allerdings gerade nicht mehr present.

Mark 21.11.2012 22:18 | #2

Bei UtcDateTime geht es nicht so einfach, aber ein einfaches Datum wie der 7.05.2010 lassen sich in x++ -Code auch einfach direkt kodieren: 07\05\2012...

Hat bei mir für Jobs immer funktioniert.

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
August 2022
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
293031 
 
© 2006-2022 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu