Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see Why Migrate to InterSystems IRIS?


Converts dates between internal and external formats.




date The date to be converted. An external date is represented as a string, such as “10–22–1980”. An internal date is represented as a five-digit integer, which is the first part of the Caché $HOROLOG ($H) date/time format.
vbToInternal This keyword specifies converting an external date to internal ($H) format.
vbToExternal This keyword specifies converting an internal date ($H format) to external date format.


If you specify a date/time value, DateConvert ignores the time portion.

The DateConvert function returns an external date in the following format:


Leading zeros are displayed. The year is displayed as four digits.

The DateConvert function returns an internal date/time in the following format:


Where “d” is the date count (number of days since 12/31/1840). For further details, see $HOROLOG in the Caché ObjectScript Reference.

An omitted year value defaults to 2000; the two-digit year defaults are 2000 through 2029 (for 00 through 29) and 1930 through 1999 (for 30 through 99).


The following example takes an external date/time value, converts the date part to an internal format ($HOROLOG) value, then converts this internal value back to an external format date.

Dim GetDate,InDate, ExDate
GetDate = "1-12-1953 11:45:23"
Println GetDate
InDate = DateConvert(GetDate,vbToInternal)
Println InDate
ExDate = DateConvert(InDate,vbToExternal)
Println ExDate

The values printed are as follows:

1-12-1953 11:45:23

See Also