日期、时间和日期时间(Basic 语法)

日期时间类型可以保存日期时间、只保存日期或只保存时间。日期类型只保存日期,而时间类型只保存时间。日期和时间类型比日期时间类型有效,因此在不需要日期时间类型所提供的附加功能性和灵活性的情况下,可以使用它们。

Visual Basic 不支持只保存日期或只保存时间的单独类型。Basic 语法日期时间类型与 Visual Basic 的日期类型相似。

可以使用日期时间字面值结构直接创建日期时间型值。其格式为在两个 # 符号之间键入日期时间。与 Visual Basic 中相同,支持许多不同格式。

Note注意

日期时间字面值不能在行之间拆分。

示例

#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#

虽然 #10:20 am# 看起来好象可以有时间类型,#8/6/1976# 看起来好象可以有日期类型,但其实并非如此。正如所有的日期时间字面值一样,它们两者均有日期时间类型。例如,可以将 #10:20 am# 看作是日期部分为空的日期时间值。若要将它转换为时间类型,请使用 CTime (#10:20 am#)。

可以不使用日期时间字面值,而使用 CDateTime 将字符串型转换为日期时间型。例如,

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

但是,使用日期时间字面值与上述使用 CdateTime 有个主要区别。日期时间字面值总是使用美国英语日期格式,而不使用运行 Crystal Reports 的特定计算机中的区域设置。因而,上述日期时间字面值示例在所有计算机上均有效。另一方面,在法语系统中可以使用这样的结构:

CDateTime ("22 aout 1997") '相当于 #Aug 22, 1997#。

日期型值可由 CDate 构成,而时间型值可由 CTime 构成:

CDate ("Aug 6, 1969")
CDate (1969, 8, 6) '指定年、月、日。
'将日期时间参数转换为日期。
CDate (#Aug 6, 1969#)
CTime ("10:30 am")
CTime (10, 30, 0) '指定小时、分钟、秒。
CTime (#10:30 am#)