Formatting INTERVAL values
Interval values must be formatted when converted to strings.
When does INTERVAL formatting take place?
Interval formatting occurs when converting an INTERVAL to a string, for example in a
LET, DISPLAY or PRINT instruction, and when
displaying interval values in form fields.
By default, INTERVAL values are formatted in the ISO format, and
depending on the interval class and type.
INTERVAL YEAR(4) TO MONTH will be formatted
as:[+|-]yyyy-mmINTERVAL DAY(n) TO FRACTION(5), the default format
is:[+|-]dddd hh:mm:ss.fffffAn INTERVAL value can be formatted with the util.Interval.format()
method:
IMPORT util
MAIN
  DEFINE iv INTERVAL DAY(6) TO MINUTE
  LET iv = "-157 11:23"
  DISPLAY util.Interval.format(iv, "%d %H:%M")
END MAIN
            -157 11:23Converting strings to INTERVAL values
INTERVAL:DEFINE iv INTERVAL HOUR(6) TO FRACTION(5)
LET iv = "20234:34:56.82373"util.Interval.parse() method, by specifying a format
                string:DEFINE iv INTERVAL DAY(6) TO FRACTION(5)
LET iv = util.Interval.parse( "-7467 + 23:45:34.12345", "%d + %H:%M:%S%F5" )Formatting symbols for INTERVAL values
When formatting INTERVAL values, the
                format-string of the util.Interval.parse() and
                util.Interval.format() methods consists of a set of place holders
                that represent the different parts of a interval value (year, month, day, hour,
                minute, second and fraction).
Table 1 shows the formatting
                symbols for INTERVAL expressions. Any character different from the
                placeholders described in this table is interpreted as a literal and will appear
                as-is in the resulting string.
| Placeholder | Description | 
|---|---|
%Y | 
Years (0-999999999) | 
%m | 
                            Months (0-999999999 if highest INTERVAL qualifier is MONTH(n), 0-11 otherwise) | 
%d | 
                            Days (0-999999999) | 
%H | 
                            Hours (0-999999999 if highest INTERVAL qualifier is HOUR(n), 00-23 otherwise) | 
%M | 
                            Minutes (0-999999999 if highest INTERVAL qualifier is MINUTE(n), 00-59 otherwise) | 
%S | 
                            Seconds (0-999999999 if highest INTERVAL qualifier is SECOND(n), 00-59 otherwise) | 
%F[n] | 
                            The fractional part of a second, where n specifies the number of digits in the fractional part (1 to 5) | 
%t | 
                            A tab character | 
%n | 
                            A newline character | 
| Format String | Interval value | Result string | 
|---|---|---|
%d days %H:%M | 
                            54561 11:23 | 
                            54561 days
                                11:23 | 
                        
%d days
                                %H:%M:%S%F5 | 
                            54561
                                11:23:45.12345 | 
                            54561 days
                                11:23:45.12345 | 
                        
[%Y years and %m
                                months] | 
                            1023-03 | 
                            [1023 years and 03
                                months] |