Date, Time, and DateTime (Crystal Syntax)

The DateTime type can hold date-times, dates only, or times only. The Date type holds dates only and the Time type holds times only. The Date and Time types are more efficient than the DateTime type, and so can be used in situations where the added functionality and flexibility of the DateTime type is not needed.

You can create DateTime values directly using the date-time literal construction. It is formed by typing in the date-time between two pound (#) signs. Many different formats are supported.

Note

Date-time literals cannot be split between lines.

Examples

#8/6/1976 1:20 am#
#August 6, 1976#
#6 Aug 1976 13:20:19#
#6 Aug 1976 1:30:15 pm#
#8/6/1976#
#10:20 am#

Even though #10:20 am# looks like it could have the Time type and #8/6/1976# looks like it could have the Date type, they do not. They both have the DateTime type, as do all date-time literals. For example, you can think of #10:20 am# as a DateTime value with a null date part. To convert it to the Time type use CTime (#10:20 am#).

Instead of using date-time literals, you can use CDateTime to convert a String to a DateTime. For example,

CDateTime ("8/6/1976 1:20 am")
CDateTime ("10:20 am")

However, there is one key difference between using date-time literals and the above usage of CDateTime. Date-time literals always use U.S. English date formats rather than settings from the locale of the particular computer on which Crystal Reports is running. Thus, the date-time literal examples above would work on all computers. On the other hand, on a French system, you could use constructions like:

CDateTime ("22 aout 1997") //Same as #Aug 22, 1997#.

Date values can be constructed with CDate and Time values with CTime:

CDate ("Aug 6, 1969")
CDate (1969, 8, 6) //Specify the year, month, day.
//Converts the DateTime argument to a Date.
CDate (#Aug 6, 1969#)
CTime ("10:30 am")
CTime (10, 30, 0) //Specify the hour, minute, second.
CTime (#10:30 am#)