Time Expressions

Time Literals

There is a special syntax for entering date and time values in the program. All values will be placed within single quotes. The sections of a date delimited by the '-' character. The time components are separated by the ':' character. If a value contains both a date and a time then the two parts are separated by the '@' character.

The date is always written as 'yyyy-mm-dd' in numeric form. All fields are required. The time is written as 'hh:mm:ss.fff' where 'fff' is the milliseconds part - trailing zeros in the milliseconds can be omitted. If there are more than 3 digits in the fraction the value will be truncated. The hours and minutes must always appear but the seconds and milliseconds are optional.

If there is a date part but no time part then the time is set to '00:00:00.000' and the value is stored as a full date and time. If there is just a time the date part is set to Null. A whole Time datum can be set to Null.

Here are some examples :-

start := '2018-12-25';
start := '2015-12-25@12:00';
start := '12:23:30.12';

Comparison Operators

All the comparison operators work with Time values - with earlier dates and times being regarded as lower than later dates and times. The only restriction is that a value with just a time cannot be compared with a values with both a date and a time.