Necetl jsem clanek cely, ale ja se potkal s podobnym problemem na Informixu 9.x.
Potreboval jsem v ulozene procedure znat timestamp pri spusteni SP a po ukonceni, pouzil jsem klicove slovo CURRENT, ale vracelo to v obou pripadech stejny cas.
No a duslednym prolizanim webu jsem nakonec zjitil, ze je to norma ANSI SQL. Zkratka v ramci behu ulozene procedury (a to vcetne vsech dalsi v ni volanych) vraci v Informixu CURRENT casove razitko spusteni procedury. Nic vic, nic min...
Informix znam jenom z rychliku, ale v PL/SQL (tj. Oracle) SYSDATE vraci skutecny cas a nikoliv dobu spusteni, krome toho pokud potrebujete zjistit dobu behu nejakeho kodu tak ma Oracle vcelku sikovnou vecicku DBMS_UTILITY.GET_TIME.
Nejedná se o čas spuštění procedury ale o čas zahájení aktuální transakce. Což by nebylo až tak na závadu. 'now' vrací čas překladu, prvního spuštění v rámci session funkce, což se asi moc neužije. Jinak můžete použít klasiku now() nebo CURRENT_TIMESTAMP - které vrací čas celkem logincky čas transkace, nebo timeofday(), který vrací skutečný čas.