For a DATE field with an INITIAL value of TODAY, DEFAULT-VALUE would contain a DATE value with today's date. For a DATETIME field with an INITIAL value of NOW, DEFAULT-VALUE would contain a DATETIME value with the current time. For a DECIMAL field, DEFAULT-VALUE would contain a DECIMAL value, as opposed to the INITIAL attribute, which has a CHARACTER data type.
DEFAULT-VALUE is suitable for assignment into a newly created record, but not as the initial value in the ADD-NEW-FIELD( ) method. In this case, TODAY and NOW will be the values and not the special strings for TODAY and NOW. That is, DEFAULT-VALUE for the initial argument in ADD-NEW-FIELD( ) will return INITIAL [today's date], instead of INITIAL TODAY.
In order for ADD-NEW-FIELD( ) to work correctly with an existing buffer for a new temp-table being dynamically built, you can use the ADD-LIKE-FIELD( ) method or, rather than using DEFAULT-VALUE, you can use the DEFAULT-STRING attribute, which is the unformatted, character data type version of the DEFAULT-VALUE including TODAY and NOW.