INTERVAL

类型为 INTERVAL 的项是一串 1 到 20 位单字节数字,反映时间间隔,即两个时间点之间之差。每一位的含义由声明该项时指定的掩码确定。

时间间隔可以是正数(从 2005 减去 1980 时)或负数(从 1980 减去 2005 时),该项的开头有一个额外字节,在掩码中不会显示出来。如果记录中有类型为 INTERVAL 的项,则在计算记录的长度和上级项(如果有的话)的长度时,必须将该额外字节计算在内。

可以下列任一格式指定掩码:
  • 跨度为月,可包括年份和月份
  • 跨度为秒,可包括天、小时、分钟、秒和百分秒

任一情况下,掩码中的每个字符都表示 1 位数字。在跨度为月的格式中,例如,y 的组合指示项中包含多少年。如果只需要 3 位数字来表示年数,则在掩码中指定 yyy。如果需要最大位数(9)来表示年数,则指定 yyyyyyyyy

在给定掩码中,第一个字符最多可用 9 次(除非另行声明);但每个后续种类字符的使用次数会进一步受到限制。

对于跨度为月的格式的掩码,将按顺序提供下列字符:
y
表示时间间隔中的年数的 0 到 9 位数字。
M
表示时间间隔中的月数的 0 到 9 位数字。如果 M 不是掩码中的第一个字符,则最多只允许使用两位数字。

缺省掩码为 yyyyMM

对于以跨度为秒的格式的掩码,将按顺序提供下列字符:
d
表示时间间隔中的天数的 0 到 9 位数字。
H
表示时间间隔中的小时数的 0 到 9 位数字。如果 H 不是掩码中的第一个字符,则最多只允许使用两位数字。
m
表示时间间隔中的分钟数的 0 到 9 位数字。如果 m 不是掩码中的第一个字符,则最多只允许使用两位数字。
s
表示时间间隔中的秒数的 0 到 9 位数字。如果 s 不是掩码中的第一个字符,则最多只允许使用两位数字。
f
0 到 6 位数字,每个数字表示秒的尾数,第一位表示十分之几,第二位表示百分之几,依此类推。即使 f 是掩码中的第一个字符,最多也只允许使用六位数字。
尽管掩码的开头或结尾可以使用指定种类的零字符,但不能跳过中间的字符。有效掩码包括下列各项:
  yyyyyyMM
  yyyyyy
  MM
  ddHHmmssffffff
  HHmmssff
  mmss
  HHmm
但下列掩码因为缺少中间字符而无效:
  // NOT valid
  ddmmssffffff 
  HHssff
如果是缺省掩码(yyyyMM)起作用,并且该项是用在使用 EBCDIC 的主机环境上,则示例值的内部十六进制表示如下所示:
  // 100 years, 2 months; the 4E means the value is positive
  4E F0 F1 F0 F0 F0 F2

  // 100 years, 2 months; the 60 means the value is negative
  60 F0 F1 F0 F0 F0 F2

如果是缺省掩码(yyyyMM)起作用,并且该项是用在使用 ASCII 的 Windows® 2000 这样的工作站环境上,则示例值的内部十六进制表示如下所示:

  // 100 years, 2 months; the 2B means the value is positive
  2B 30 31 30 30 30 32

  // 100 years, 2 months; the 2D means the value is negative
  2D 30 31 30 30 30 32

类型为 INTERVAL 的项属于强类型,所以不能将此类型的项与任何其它类型的项进行比较;也不能将此类型的项与其它类型的项相互赋值。

总之,类型为 INTERVAL 的项不能从关系数据库接收数据,也不能向关系数据库提供数据。

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.