Datastage 类型转换函数

原文链接版权归IBM

 IBM InfoSphere DataStage V9.1.0

反馈


类型转换函数

上次更新时间: 2021-03-05

类型转换函数用于更改参数的类型。

以下函数位于表达式编辑器的“类型转换”类别中。方括号表示参数是可选的。缺省日期格式为 %yyyy-%mm-%dd。

以下示例按照 Transformer 阶段的派生字段中所示来显示这些函数。

Char

根据其数字代码值生成一个 ASCII 字符。您可以指定 allow8bits 参数来转换 8 位 ASCII 值(可选)。

  • 输入:code (number),[allow8bits]
  • 输出:result (char)
  • 示例。以下示例将 ASCII 码 65 输出为字符 A。
    Char(65)

DateToString

返回给定日期的字符串表示。可以指定字符串的格式(可选)。

  • 输入:date (date),[format (string)]
  • 输出:result (string)
  • 示例。以下示例会将 mylink.mydate 列中包含的日期输出为字符串。如果 mylink.mydate 包含日期 2009 年 8 月 18 日,那么输出字符串为“2009-08-18”:
    DateToString(mylink.mydate)

    以下示例会将 mylink.mydate 列中包含的日期输出为 dd:mm:yyyy 格式的字符串。如果 mylink.mydate 包含日期 2009 年 8 月 18 日,那么输出字符串为“18:08:2009”:
    DateToString(mylink.mydate, "%dd:%mm:%yyyy")

DateToDecimal

将给定的日期返回为压缩十进制值。如果您的目标十进制数指定了小数位,那么部分日期会在小数点后显示。您可以指定格式字符串来指定如何以十进制数形式存储日期(可选)。缺省格式字符串为“%yyyy%mm%dd”,因此,日期 2009-08-25 将存储为十进制数 20090825。格式字符串只能指定包含数字的格式。例如,不能指定诸如“%yyyy-%mm-%dd”之类的格式字符串,这是因为压缩十进制值中不能存储连字符 (-)。以下标记对于与十进制值之间的转换有效:

%yyyy(四位数表示的年份)

%yy(两位数表示的年份)

%NNNNyy(截断的两位数年份)

%mm(两位数表示的月份)

%dd(两位数表示的一月中的第几天)

%ddd(三位数表示的一年中的第几天)

字面值数字 0 到 9 都有效。

  • 输入:basedate (date) [, format (string)]
  • 输出:converted_date (decimal)
  • 示例。如果 mylink.basedate 列包含日期 2012-08-18,那么以下函数会将日期存储为十进制数 18082012:
    DateToDecimal (mylink.basedate, "%dd%mm%yyyy")

    如果 mylink.basedate 列包含日期 2012-08-18,并且目标列的长度为 10,小数位为 2,那么以下函数会将日期存储为十进制数 201208.18:
    DateToDecimal (mylink.basedate)

DecimalToDate

将给定的压缩十进制数返回为日期。在将十进制数转换为日期时,会忽略其符号和小数位。您可以指定格式字符串来指定如何以十进制数形式存储日期(可选)。缺省格式字符串为“%yyyy%mm%dd”,因此,日期 2009-08-25 将存储为十进制数 20090825。格式字符串只能指定包含数字的格式。例如,不能指定诸如“%yyyy-%mm-%dd”之类的格式字符串,这是因为压缩十进制值中不能存储连字符 (-)。以下标记对于与十进制值之间的转换有效:

%yyyy(四位数表示的年份)

%yy(两位数表示的年份)

%NNNNyy(截断的两位数年份)

%mm(两位数表示的月份)

%dd(两位数表示的一月中的第几天)

%ddd(三位数表示的一年中的第几天)

字面值数字 0 到 9 都有效。

  • 输入:basedec (decimal) [, format (string)]
  • 输出:date
  • 示例。如果 mylink.mydecdata 列包含值 18082012,那么以下函数将返回日期 2012-08-18:
    DecimalToDate (mylink.basedate, "%dd%mm%yyyy")

    如果 mylink.mydecdata 列包含值 -201208.18,那么以下函数将返回日期 2012-08-18:
    DecimalToDate (mylink.basedate)

DecimalToDecimal

以具有目标列定义中指定精度和小数位的十进制表示形式返回给定的十进制数。参数 rtype 指定取整类型,并设置为以下某个值(可选):

ceil。向正无穷方向对源字段取整。例如,1.4 -> 2,-1.6 -> -1。

floor。向负无穷方向对源字段取整。例如,1.6 -> 1,-1.4 -> -2。

round_inf。通过向正无穷方向对正数值取整并向负无穷方向对负数值取整,向最接近的可表示值对源字段进行取整或截断。例如,1.4 -> 1,1.5 -> 2,-1.4 -> -1,-1.5 -> -2。

trunc_zero。不论符号如何,废弃位于目标数据支持的最右侧小数位右侧的任何小数位。例如,如果目标数据是整数,那么截断所有小数位。如果目标数据是另一个具有更少小数位的小数,那么按照目标小数的小数位数进行取整或截断。例如,1.6 -> 1,-1.6 -> -1。

  • 输入:decimal (decimal) [,rtype (string)]
  • 输出:result (decimal)
  • 示例。如果 mylink.mydec 列包含十进制数 2.5345,那么以下函数将返回十进制数 00000002.54。
    DecimalToDecimal(mylink.mydec,"ceil")

    以下函数将返回十进制数 00000002.53。
    DecimalToDecimal(mylink.mydec,"floor")

    以下函数将返回十进制数 00000002.53。
    DecimalToDecimal(mylink.mydec,"trunc_zero")

    以下函数将返回十进制数 00000002.53。
    DecimalToDecimal(mylink.mydec,"round_inf")

    在所有这些示例中,目标十进制的长度为 10,小数位为 2。

DecimalToDFloat

以 dfloat 表示形式返回给定的十进制数。参数“fix_zero”指定所有零十进制值均视为有效(缺省情况下,全部由零组成的十进制数将视为无效)(可选)。

  • 输入:decimal (decimal) [,"fix_zero"]
  • 输出:result (dfloat)
  • 示例。如果 mylink.mydec 列包含十进制数 00000004.00,那么以下函数将返回 dfloat 数 4.00000000000000000E+00。
    DecimalToDFloat(mylink.mydec,"fix_zero")

    如果 mylink.mydec 列包含十进制数 00012344.00,那么以下函数将返回 dfloat 数 1.23440000000000000E+04。
    DecimalToDFloat(mylink.mydec,"fix_zero")

    如果 mylink.mydec 列包含十进制数 00012344.120,那么以下函数将返回 dfloat 数 1.23441200000000010E+04。
    DecimalToDFloat(mylink.mydec,"fix_zero")

    如果 mylink.mydec 列包含十进制数 00012344.120,那么以下函数将返回 dfloat 数 1.23441200000000010E+04。
    DecimalToDFloat(mylink.mydec)

    如果 mylink.mydec 列包含十进制数 00012344.000,那么以下函数将返回 dfloat 数 1.23440000000000000E+04。
    DecimalToDFloat(mylink.mydec)

DecimalToString

将给定的十进制数返回为字符串。参数“fix_zero”指定所有零十进制值均视为有效(缺省情况下,全部由零组成的十进制数将视为无效)(可选)。这包括压缩十进制表示的符号位都为 0 以及都为内容数字的情况。该特性只在“fix_zero”为 true 时才视为有效。

  • 输入:decimal (decimal) [,"fix_zero"]
  • 输出:result (string)
  • 示例。如果 mylink.mydec 列包含十进制数 00000004.00,那么以下函数将返回字符串“4”:
    DecimalToString(mylink.mydec,"suppress_zero")

    如果 mylink.mydec 列包含十进制数 00000004.00,那么以下函数将返回字符串“0000000000000000000000000004.0000000000”。
    DecimalToString(mylink.mydec,"fix_zero")

    如果 mylink.mydec 列包含十进制数 00012344.00。那么以下函数将返回字符串“12344”。
    DecimalToString(mylink.mydec,"suppress_zero")

    如果 mylink.mydec 列包含十进制数 00012344.00,那么以下函数将返回字符串“0000000000000000000000012344.0000000000”。
    DecimalToString(mylink.mydec,"fix_zero")

    如果 mylink.mydec 列包含十进制数 00012344.120,那么以下函数将返回字符串“0000000000000000000000012344.1200000000”。
    DecimalToString(mylink.mydec,"fix_zero")

    如果 mylink.mydec 列包含十进制数 00012344.120,那么以下函数将返回字符串“12344.12”:
    DecimalToString(mylink.mydec,"suppress_zero")

    如果 mylink.mydec 列包含十进制数 00012344.120,那么以下函数将返回字符串“0000000000000000000000012344.120000000”。
    DecimalToString(mylink.mydec)

    如果 mylink.mydec 列包含十进制数 00012344.000,那么以下函数将返回字符串“0000000000000000000000012344.0000000000”。
    DecimalToString(mylink.mydec)

DecimalToTime

将给定的压缩十进制数返回为时间。您可以指定格式字符串来指定如何以十进制数形式存储时间(可选)。缺省格式字符串为“%hh%nn%ss”,因此,时间 14:03:22 将存储为十进制数 140322。 格式字符串只能指定包含数字的格式。例如,不能指定诸如“%hh:%nn:%ss”之类的格式字符串,这是因为压缩十进制值中不能存储冒号 (:)。以下标记对于与十进制值之间的转换有效:

%hh(使用 24 小时制的以两位数表示的小时数)

%nn(两位数表示的分钟数)

%ss(两位数表示的秒数)

%ss.N(由两位数表示的秒数加上所允许的小数位数。 小数位数从 1 到 6,包括 1 和 6)。

字面值数字 0 到 9 都有效。

如果指定的格式包含微秒(例如,%ss.4),那么将在十进制值中推断小数点的位置。小数点的位置不必与指定的十进制小数位一致(例如,小数位 = 4)。

  • 输入:time (time) [, format (string)]
  • 输出:result (decimal)
  • 示例:如果 mylink.mytimedec 列包含十进制值 200658,那么以下函数将返回时间 20:06:58:
    DecimalToTime(mylink.mytimedec)

    如果 mylink.mytimedec 列包含十进制值 580620,那么以下函数将返回时间 20:06:58:
    DecimalToTime(mylink.mytimedec, "%ss%nn%hh")

DecimalToTimestamp

将给定的压缩十进制数返回为时间戳。您可以指定格式字符串来指定如何以十进制数形式存储时间戳(可选)。缺省格式字符串为“%yyyy%mm%dd%hh%nn%ss”,因此,时间戳 2009-08-25 14:03:22 将存储为十进制数 20090825140322。格式字符串只能指定包含数字的格式。例如,不能指定诸如“%yyyy/%mm/%dd%hh:%nn:%ss”之类的格式字符串,这是因为压缩十进制值中不能存储斜杠 (/) 和冒号 (:)。 以下标记对于与十进制值之间的转换有效:

%yyyy(四位数表示的年份)

%yy(两位数表示的年份)

%NNNNyy(截断的两位数年份)

%mm(两位数表示的月份)

%dd(两位数表示的一月中的第几天)

%ddd(三位数表示的一年中的第几天)

%hh(使用 24 小时制的以两位数表示的小时数)

%nn(两位数表示的分钟数)

%ss(两位数表示的秒数)

%ss.N(由两位数表示的秒数加上所允许的小数位数。 小数位数从 1 到 6,包括 1 和 6)。

字面值数字 0 到 9 都有效。

如果指定的格式包含微秒(例如,%ss.4),那么将在十进制值中推断小数点的位置。小数点的位置不必与指定的十进制小数位一致(例如,小数位 = 4)。

  • 输入:timestamp (timestamp) [, format (string)]
  • 输出:result (decimal)
  • 示例:如果 mylink.mytimestampdec 列包含值 19580818200658,那么以下函数将返回时间戳 1958–08–18 20:06:58:
    DecimalToTimestamp(mylink.mytimestampdec)

    如果 mylink.mytimestampdec 列包含十进制值 200658580818,那么以下函数将返回时间戳 1958–08–18 20:06:58:
    DecimalToTimestamp(mylink.mytimestampdec, "%hh%nn%ss%yy%mm%dd")

DFloatToDecimal

以十进制表示形式返回给定的 dfloat。参数 rtype 指定取整类型,并设置为以下某个值(可选):

ceil。向正无穷方向对源字段取整。例如,1.4 -> 2,-1.6 -> -1。

floor。向负无穷方向对源字段取整。例如,1.6 -> 1,-1.4 -> -2。

round_inf。通过向正无穷方向对正数值取整并向负无穷方向对负数值取整,向最接近的可表示值对源字段进行取整或截断。例如,1.4 -> 1,1.5 -> 2,-1.4 -> -1,-1.5 -> -2。

trunc_zero。不论符号如何,废弃位于目标数据支持的最右侧小数位右侧的任何小数位。例如,如果目标数据是整数,那么截断所有小数位。如果目标数据是另一个具有更少小数位的小数,那么按照目标小数的小数位数进行取整或截断。例如,1.6 -> 1,-1.6 -> -1。

  • 输入:number (dfloat), [rtype (string)]
  • 输出:result (decimal)
  • 示例。如果 mylink.myfloat 列包含 dfloat 数 2.534,那么以下函数将返回十进制数 00000002.54。
    DFloatToDecimal(mylink.mydec,"ceil")

    如果 mylink.myfloat 列包含 dfloat 数 2.534,那么以下函数将返回十进制数 00000002.53。
    DFloatToDecimal(mylink.mydec,"floor")

    如果 mylink.myfloat 列包含 dfloat 数 2.534,那么以下函数将返回十进制数 00000002.53。
    DFloatToDecimal(mylink.mydec,"trunc_zero")

    如果 mylink.myfloat 列包含 dfloat 数 2.534,那么以下函数将返回十进制数 00000002.53。
    DFloatToDecimal(mylink.mydec,"round_inf")

DfloatToStringNoExp

使用指定小数位,以无指数的字符串表示形式返回给定的 dfloat。

  • 输入:number (dfloat), scale (string)
  • 输出:result (string)
  • 示例。如果 mylink.myfloat 列包含 dfloat 数 2.534,那么以下函数将返回字符串 00000002.50:
    DfloatToStringNoExp(mylink.myfloat,2)

IsValid

返回给定的字符串对于给定类型是否有效。 有效类型为 "date", "decimal", "dfloat", "sfloat", "int8", "uint8", "int16", "uint16", "int32", "uint32", "int64", "uint64", "raw", "string", "time", "timestamp", "ustring"。对于数据类型 date、time 和 timestamp,您可以指定格式字符串(可选)。格式字符串描述输入数据的格式与 date、time 或 timestamp 的缺省格式不同时,输入数据所使用的格式。date 的缺省格式为“%yyyy-%mm-%dd”。time 的缺省格式为“%hh:%mm:%ss”。timestamp 的缺省格式为“%yyyy-%mm-%dd %hh:%mm:%ss”。该功能不会记录警告。

  • 输入:type (string), teststring (string) [, format (string)]
  • 输出:result (int8)
  • 示例。如果 mylink.mystring 列包含字符串“1”,那么以下函数将返回值 1。
    IsValid("int8",mylink.mystring)

    如果 mylink.mystring 列包含字符串“380096.06”,那么以下函数将返回值 0。
    IsValid("int8",mylink.mystring)

IsValidDate

返回给定的值是否为有效的 date 类型。该功能记录警告。

  • 输入:testdate (date)
  • 输出:result (int8)
  • 示例。如果 mylink.mydate 列包含日期 2011-09-13,那么以下函数将返回值 1。
    IsValidDate(mylink.mydate)

    如果 mylink.mydate 列包含字符串“380096.06”,那么以下函数将返回值 0,这是因为转换后的字符串不是有效的 date 类型。
    IsValidDate(StringToDate (mylink.mydate))

IsValidDecimal

返回给定的值是否为有效的 decimal 类型。 如果将 allzerosflag 设置为 0,那么全零表示将视为无效。缺省情况下,allzerosflag 设置为 0。

  • 输入:testvalue (decimal) [, allzerosflag (uint8)]
  • 输出:result (int8)
  • 示例。如果 mylink.mynum 列包含值 310007.65,那么以下函数将返回值 1。
    IsValidDecimal(mylink.mynum)

    如果 mylink.mynum 列包含字符串“wake-robin”,那么以下函数将返回值 0,这是因为转换后的字符串不是有效的 decimal 类型。
    IsValidDecimal(StringToDecimal (mylink.mynum))

IsValidTime

返回给定的时间是否为有效的 time 类型。

  • 输入:testtime (time)
  • 输出:result (int8)
  • 示例。如果 mylink.mytime 列包含时间 23:09:22,那么以下函数将返回值 1:
    IsValidTime(mylink.mytime)

    如果 mylink.mydate 列包含字符串“IbnKayeed”,那么以下函数将返回值 0,这是因为转换后的字符串不是有效的 time 类型。
    IsValidTime(StringToTime (mylink.mytime))

IsValidTimestamp

返回给定的时间戳是否为有效的 timestamp 类型。

  • 输入:testtimestamp (timestamp)
  • 输出:result (int8)
  • 示例。如果 mylink.mytimestamp 列包含时间 2011-09-13 23:09:22,那么以下函数将返回值 1:
    IsValidTimestamp(mylink.mytimestamp)

    如果 mylink.mytimestamp 列包含字符串“one of two”,那么以下函数将返回值 0,这是因为转换后的字符串不是有效的 timestamp 类型。
    IsValidTimestamp(StringToTimestamp (mylink.mytimestamp))

RawNumAt

返回指定 raw 字段中指定索引值的整数值。索引从 0 开始。

  • 输入:rawfield (raw), index (int32)
  • 输出:result (int32)
  • 示例。如果 mylink.myraw 列包含从字符串“hello”派生的 raw 值,那么以下函数将返回整数 0x68(字符 h 对应的 ASCII 码值):
    RawNumAt(mylink.myraw, 0)

    如果 mylink.myraw 列包含从字符串“hello”派生的 raw 值,那么以下函数将返回 0,这是因为指定的索引超出了范围:
    RawNumAt(mylink.myraw, 12)

RawToString

以字符串表示形式返回给定的 raw 值。必须确保 raw 输入值包含一个字节序列,这些字节在使用输出字符串的目标字符集中为有效字符。例如,由于前导字节 0xE0 后应有范围在 [0x80..0xBF] 中的字节,因此 raw 值 { 0xE0 0x41 0x42 } 不是有效的 UTF-8 字符序列。如果将 raw 值 { xE0 x41 x42 } 传递给 RawToString 函数,那么在随后访问输出字符串时可能会出错,就像使用 UTF-8 对其进行编码一样。

  • 输入:rawfield (raw)
  • 输出:result (string)
  • 示例。如果 mylink.myraw 列包含值 { 0x31 0x31 0x30 0x35 0x32 0x32 0x30 0x39 },那么以下函数将返回字符串“11052209”。
    RawNumAt(mylink.myraw)

Seq

根据 ASCII 字符生成数字代码值。您可以指定 allow8bits 参数来转换 8 位 ASCII 值(可选)。

  • 输入:Seq (char)
  • 输出:result (number)
  • 示例。以下示例将字符 A 输出为 ASCII 码 65。
    Seq("A")

SeqAt

返回给定字符串中指定位置上字符的数字代码点值。索引从 0 开始。如果指定的索引超出范围,那么该函数将返回 0。

  • 输入:basestring (string),index (int32)
  • 输出:result (int32)
  • 示例。如果 mylink.mystring 列包含字符串“horse”,那么以下函数将返回值 0x6F(即,字符 o 对应的 ASCII 码值)。
    SeqAt(mylink.mystring, 1)

StringToDate

以给定的格式返回给定字符串表示的日期。如果字符串包含缺省格式 yyyy-mm-dd 的日期,那么不必指定格式字符串。

  • 输入:string (string) [,format (string)]
  • 输出:result (date)
  • 示例:如果 mylink.mystring 列包含字符串“1958–08–18”,那么以下函数将返回日期 1958–08–18。
    StringToDate(mylink.mystring)

    如果 mylink.mystring 列包含字符串“18:08:1958”,那么以下函数将返回日期 1958–08–18
    StringToDate(mylink.mystring,"%dd:%mm:%yyyy")

StringToDecimal

以十进制表示形式返回给定的字符串。参数 rtype 指定取整类型,并设置为以下某个值(可选):

ceil。向正无穷方向对源字段取整。例如,1.4 -> 2,-1.6 -> -1。

floor。向负无穷方向对源字段取整。例如,1.6 -> 1,-1.4 -> -2。

round_inf。通过向正无穷方向对正数值取整并向负无穷方向对负数值取整,向最接近的可表示值对源字段进行取整或截断。例如,1.4 -> 1,1.5 -> 2,-1.4 -> -1,-1.5 -> -2。

trunc_zero。不论符号如何,废弃位于目标数据支持的最右侧小数位右侧的任何小数位。例如,如果目标数据是整数,那么截断所有小数位。如果目标数据是另一个具有更少小数位的小数,那么按照目标小数的小数位数进行取整或截断。例如,1.6 -> 1,-1.6 -> -1。

  • 输入:string (string),[rtype (string)]
  • 输出:result (decimal)
  • 示例。如果 mylink.mystring 列包含字符串“19982.22”,并且目标列定义为精度为 7,小数位为 2,那么以下函数将返回十进制数 19983.22。
    StringToDecimal(mylink.mystring)

    如果 mylink.mystring 列包含字符串“19982.2276”,并且目标列定义为精度为 7,小数位为 2,那么以下函数将返回十进制数 19983.23。
    StringToDecimal(mylink.mystring,"ceil")

StringToRaw

以 raw 表示形式返回字符串。

  • 输入:string (string)
  • 输出:result (raw)
  • 示例。如果 mylink.mystring 列包含字符串“hello”,并且目标列定义为二进制类型,那么以下函数将返回值 { 0x68 0x65 0x6C 0x6C 0x6F }。
    StringToRaw(mylink.mystring)

StringToTime

返回给定字符串的时间表示。

  • 输入:string (string),[format (string)]
  • 输出:result (time)
  • 示例:如果 mylink.mystring 列包含字符串“20:06:58”,那么该函数将返回时间 20:06:58。
    StringToTime(mylink.mystring)

    如果 mylink.mystring 列包含字符串“20:6:58”,那么该函数将返回时间 20:06:58。
    StringToTime(mylink.mystring,"%(h,s):$(n,s):$(s,s)")

StringToTimestamp

返回给定字符串的时间表示。

  • 输入:string (string) [format (string)]
  • 输出:result (time)
  • 示例:如果 mylink.mystring 列包含字符串“1958–08–08 20:06:58”,那么该函数将返回时间戳 1958–08–08 20:06:58。
    StringToTimestamp(mylink.mystring)

    如果 mylink.mystring 列包含字符串“8/ 8/1958 20: 6:58”,那么该函数将返回时间戳 1958–08–08 20:06:58。
    StringToTimestamp(mylink.mystring, "%(d,s)/%(m,s)/%yyyy%(h,s):$(n,s):$(s,s)")

StringToUstring

返回给定字符串的 ustring,可以选择使用指定的映射(否则,将使用项目缺省值)。

  • 输入:string (string),[mapname(string)]
  • 输出:result (ustring)
  • 示例:如果 mylink.mystring 列包含字符串“11052009”,那么以下函数将返回 ustring“11052009”
    StringToUstring(mylink.mystring)

TimestampToDate

返回给定时间戳的日期。

  • 输入:timestamp (timestamp)
  • 输出:result (date)
  • 示例:如果 mylink.mytimestamp 列包含时间戳 1958–08–18 20:06:58,那么以下函数将返回日期 1958–08–18:
    TimestampToDate(mylink.mytimestamp)

TimestampToDecimal

将给定的时间戳返回为压缩十进制。您可以指定格式字符串来指定如何以十进制数形式存储时间戳(可选)。缺省格式字符串为“%yyyy%mm%dd%hh%nn%ss”,因此,时间戳 2009-08-25 14:03:22 将存储为十进制数 20090825140322。格式字符串只能指定包含数字的格式。例如,不能指定诸如“%yyyy/%mm/%dd%hh:%nn:%ss”之类的格式字符串,这是因为压缩十进制值中不能存储斜杠 (/) 和冒号 (:)。 以下标记对于与十进制值之间的转换有效:

%yyyy(四位数表示的年份)

%yy(两位数表示的年份)

%NNNNyy(截断的两位数年份)

%mm(两位数表示的月份)

%dd(两位数表示的一月中的第几天)

%ddd(三位数表示的一年中的第几天)

%hh(使用 24 小时制的以两位数表示的小时数)

%nn(两位数表示的分钟数)

%ss(两位数表示的秒数)

%ss.N(由两位数表示的秒数加上所允许的小数位数。 小数位数从 1 到 6,包括 1 和 6)。

字面值数字 0 到 9 都有效。

如果指定的格式包含微秒(例如,%ss.4),那么将在十进制值中推断小数点的位置。小数点的位置不必与指定的十进制小数位一致(例如,小数位 = 4)。

  • 输入:timestamp (timestamp) [, format (string)]
  • 输出:result (decimal)
  • 示例:如果 mylink.mytimestamp 列包含时间戳 1958–08–18 20:06:58,那么以下函数将返回十进制值 19580818200658:
    TimestampToDecimal(mylink.mytimestamp)

    如果 mylink.mytimestamp 列包含时间戳 1958–08–18 20:06:58,那么以下函数将返回十进制值 200658580818:
    TimestampToDecimal(mylink.mytimestamp, "%hh%nn%ss%yy%mm%dd")

TimestampToString

返回给定时间戳的字符串。

  • 输入:timestamp (timestamp) [format (string)]
  • 输出:result (string)
  • 示例:如果 mylink.mytimestamp 列包含时间戳 1958–08–1820:06:58,那么该函数将返回字符串“1958–08–1820:06:58”。
    TimestampToString(mylink.mytimestamp)

    如果 mylink.mytimestamp 列包含时间戳 1958–08–1820:06:58,那么该函数将返回字符串“18/08/1958 20:06:58”:
    TimestampToString(mylink.mytimestamp, "%dd/%mm/%yyyy %hh:$nn:$ss")

TimestampToTime

返回给定时间戳的字符串表示。

  • 输入:timestamp (timestamp)
  • 输出:result (time)
  • 示例:如果 mylink.mytimestamp 列包含时间戳 1958–08–1820:06:58,那么该函数将返回时间 20:06:58:
    TimestampToTime(mylink.mytimestamp)

TimeToString

返回给定时间的字符串。

  • 输入:timestamp (timestamp) [format (string)]
  • 输出:result (time)
  • 示例:如果 mylink.mytime 列包含时间 20:06:58,那么以下函数将返回字符串“20:06:58”:
    TimeToString(mylink.mytime)

    如果 mylink.mytime 列包含时间 20:06:58,那么以下函数将返回字符串“58:06:20”:
    TimeToString(mylink.mytime, "%ss:$nn:$hh")

TimeToDecimal

将给定的时间返回为压缩十进制。您可以指定格式字符串来指定如何以十进制数形式存储时间(可选)。缺省格式字符串为“%hh%nn%ss”,因此,时间 14:03:22 将存储为十进制数 140322。 格式字符串只能指定包含数字的格式。例如,不能指定诸如“%hh:%nn:%ss”之类的格式字符串,这是因为压缩十进制值中不能存储冒号 (:)。以下标记对于与十进制值之间的转换有效:

%hh(使用 24 小时制的以两位数表示的小时数)

%nn(两位数表示的分钟数)

%ss(两位数表示的秒数)

%ss.N(由两位数表示的秒数加上所允许的小数位数。 小数位数从 1 到 6,包括 1 和 6)。

字面值数字 0 到 9 都有效。

如果指定的格式包含微秒(例如,%ss.4),那么将在十进制值中推断小数点的位置。小数点的位置不必与指定的十进制小数位一致(例如,小数位 = 4)。

  • 输入:time (time) [, format (string)]
  • 输出:result (decimal)
  • 示例:如果 mylink.mytime 列包含时间 20:06:58,那么以下函数将返回十进制值 200658:
    TimeToDecimal(mylink.mytime)

    如果 mylink.mytime 列包含时间 20:06:58,那么以下函数将返回十进制值 580620:
    TimeToDecimal(mylink.mytime, "%ss%nn%hh")

UstringToString

返回给定 ustring 的字符串,可以选择使用指定的映射(否则,将使用项目缺省值)。

  • 输入:string (ustring) [, mapname(string)]
  • 输出:result (string)
  • 示例:如果 mylink.myustring 列包含 ustring“11052009”,那么以下函数将返回字符串“11052009”:
    UstringToString(mylink.myustring)

父主题:

并行变换函数


 发布日期: 2012-11-20 本资料的 PDF 版本: IBM InfoSphere DataStage and QualityStage 并行作业开发者指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值