`
鱼的地盘
  • 浏览: 1901 次
社区版块
存档分类
最新评论

消息流中的ESQL数据类型

阅读更多
一、布尔数据类型
    BOOLEAN 数据类型保存Boolean值。具有TRUE、FALSE、UNKNOW三个值,它们能以大写或小写的形式出现。

二、日期时间数据类型
    1、DATE 数据类型:
DATE 数据类型保持阳历日历日期(年月日),DATE 文字的格式是单词DATE 后后跟一个空格,后跟格式为‘yyyy-MM-dd’在单引号内的日期,如:
DECLARE myDate DATE;
SET myDate = DATE '2014-12-09';
不要生了年月日签名的‘0’。

    2、TIME 数据类型
TIME数据类型以小时,分钟,秒和毫秒保持了天的时间。Time文字的格式是单词TIME后后跟一个空格,在跟格式为‘hh:mm:ss.ffff’在单引号内的时间,如:
DECLARE myTime TIME;
SET myTime = TIME '09:44:44.656';

    3、GMTTIME 数据类型
除了该值以格林威治标准时间值解释以外,GMTTIME数据类型与TIME的数据类型相似。GMTTIME的方法定义,如:
DECLARE myGetGmttime GMTTIME;
SET myGetGmttime = GMTTIME '09:48:44';

    4、TIMESTAMP 数据类型
TIMESTAMP 数据类型以小时、分钟、秒和毫秒保持DATE和TIME。TIMESTAMP的格式为‘yyyy-MM-dd HH:mm:ss.SSSSSS’,如:
DECLARE myTimeStamp TIMESTAMP;
SET myTimeStamp = TIMESTAMP '2014-12-08 09:51:55';

    5、GMTTIMESTAMP 数据类型
除了该值以格林威治标准时间值解释以外,GMTTIMESTAMP 数据类型与 TIMESTAMP 数据类型相似。GMTTIMESTAMP 值以与 TIMESTAMP 值相似的方法定义,例如:
DECLARE myGetGMTTimeStamp GMTTIMESTAMP;
SET myGetGMTTimeStamp = GMTTIMESTAMP '1999-12-31 23:59:59.999999';

    6、INTERVAL数据类型
    INTERVAL 数据类型保存时间间隔。此数据类型具有大量子类型:YEAR、YEAR TO MONTH、MONTH、DAY、DAY TO HOUR、DAY TO MINUTE、DAY TO SECOND、HOUR、HOUR TO MINUTE、HOUR TO SECOND、MINUTE、MINUTE TO SECOND、SECOND。
    所有这些子类型均描述时间间隔,并且全部可参与 INTERVAL 类型的整个操作;例如,用类型 DATE、TIME 或 TIMESTAMP 的值执行添加和抽取操作。
    使用 CAST 函数从一个子类型强制转换为另一个子类型,但以年和月,或月描述的时间间隔除外,因为这些类型无法转换为以日、小时、分钟和秒描述的时间间隔。
    因为每月中的天数是变化的,将引起月和天之间的割裂。月和天的时间间隔没有意义,且无法转换为仅与天数等价的时间间隔。
    时间间隔字面值由以下语法定义:
INTERVAL <interval string> <interval qualifier>

三、NULL 数据类型
    所有 ESQL 数据类型(REFERENCE 除外)都支持空值这一概念。为空的值表明该值是未知的、未定义的或未初始化的。当您引用不存在的消息字段、访问没有提供数据的数据库列或使用提供空字面值的关键字 NULL 时,会生成空值。

四、数字数据类型
    1、DECIMAL 数据类型
    DECIMAL 数据类型可以精确表示十进制数字。十进制数字有精度和小数位并进行舍入。精度是数字的总位数:最小精度是1,最大精度是34.
SET VAL = CAST('123456' AS DECIMAL(3,0))

    2、FLOAT 数据类型
    FLOAT 数据类型是长度为 64 位的二进制数,用尾数和指数近似表示实数。因此值的范围在 +-1.7E-308 和 +-1.7E+308 之间。浮点值由不带引号的数字串和十进制小数点(例如 123.4)、指数(例如 123e4)或两者的组合(例如 123.4e5)组成。如果这些数值足够小,能够表示为浮点数,它们就属于 FLOAT 类型。否则就是十进制型
    注意:将 FLOAT 数值隐式或显式地强制转换为 INTEGER 数值时,FLOAT 数值被截断;即除去了十进制小数点之后的数并且不舍入。将 FLOAT 隐式或显式地强制转换为 DECIMAL 或 CHARACTER 时,可以将 FLOAT 舍入到最大精度(15 位)。

    3、INTEGER 数据类型
    INTEGER 数据类型以 64 位双补码格式来保持整数数字。因此值的范围在 -9223372036854775808 和 +9223372036854775807 之间。

五、REFERENCE 数据类型
    REFERENCE 数据类型在消息中保留字段的位置。它不能保留常量、数据库表、数据库列或另一个引用的位置。为与早期版本兼容,引用变量也可指向标量变量引用文字是分层路径名,由句点分隔的一系列路径元素组成。列表中第一个元素称为关联名,并标识引用、行或标量变量。任何后继元素仅适用于引用消息树,并在与由 关联名所指定字段有关的消息树中标识字段类型、名称和索引。
    注: 如果使用 REFERENCE,那么能够修改任何元素,即使元素属于输入树。例如:
InputRoot.MQMD.Priority
是一个字段引用文字,它指包含在输入消息 MQMD 结构中的属性字段。

六、ROW 数据类型
ROW 数据类型包含树结构。数据库中的行是特殊类型的树结构,但是 ROW 数据类型并不仅限于保存来自数据库行的数据。

在数据库中,行是固定、有序的标量值集合。标量定义为单个实体值或字符串。数据库表是无序的行集合,因此它是二维的标量值“数组”,其中一维是固定的,另一维是可变的。在 ESQL 中,行是无终止、有序的已命名值集,其中的每个值可以是标量,也可以是另一行。也就是说,行是无终止的树结构,对维数或规则性没有限制。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics