Transformer Stage:各个函数的意义:
Date$Time
函数名称 | 测试用列 | 描述 | 测试结果 |
CurrentDate | CurrentDate() | 获取系统当天日期 | 2008-08-05 |
CurrentTime | CurrentTime() | 获取系统当天时间 | 17:52:31 |
CurrentTimestamp | CurrentTimestamp() | 获取系统当天日期时间 | 2008-08-05 17:52:31 |
HoursFromTime | HoursFromTime(’08:01:02’) | 获取小时 | 8 |
JulianDayFromDate | JulianDayFromDate(‘2008-08-05’) |
| 2454685 |
MicroSecondsFromTime | MicroSecondsFromTime(‘17:52:31’) | 返回一个微妙数 | 0 |
MinutesFromTime | MinutesFromTime('14:24:45') | 返回一个分钟数 | 24 |
MonthDayFromDate | MonthDayFromDate("2008-08-13") | 返回当月的第几天 | 13 |
DateFromDaysSince | DateFromDaysSince('13',"2008-08-12") | 返回当天时间被加后的日期类型 | 2008-08-25 |
MonthFromDate | MonthFromDate('2008-09-01') | 返回当月的月 | 9 |
NextWeekdayFromDate | NextWeekdayFromDate('2008-08-10','Thursday') | 传入当月当天日期返回得到传入星期几的下一个日期几 | 2008-08-14 |
PreviousWeekdayFromDate | PreviousWeekdayFromDate('2008-08-10','Wednesday') | 传入当月当天日期返回得到传入星期几的上一个日期几 | 2008-08-06 |
SecondsFromTime | SecondsFromTime('17:23:44') | 传入时间返回时间的秒数 | 44 |
SecondsSinceFromTimestamp | SecondsSinceFromTimestamp('2008-08-06 10:01:31','2008-08-19 09:12:31') | 返回两个日期的比较后得出的秒数 | -1.12026e+06 = -1120260 |
TimeDate | TimeDate() | 获取系统时间以时间,日,月,年显示 | 14:07:50 06 Aug 2008 |
TimeFromMidnightSeconds | TimeFromMidnightSeconds('120') | 传入秒数获得以计算秒为时间单位的时间 | 00:02:00 |
TimestampFromDateTime | TimestampFromDateTime('2008-09-01','07:30:41') | 传入日期,时间整合返回Timestamp | 2008-09-01 07:30:41 |
TimestampFromSecondsSince | TimestampFromSecondsSince('120','2008-08-07 11:12:13') | 传入秒数,Timestamp后返回将秒数累加到Timestamp类型上 | 2008-08-07 11:14:13 |
TimestampFromTimet | TimestampFromTimet('120') | 传入秒数返回一个unix上的timestamp类型 | 1970-01-01 00:02:00 |
TimetFromTimestamp | TimetFromTimestamp('1970-01-01 00:02:00') | 传入timestamp类型返回unix time_t | 120 |
WeekdayFromDate | WeekdayFromDate('2008-08-09','Wednesday') | 传入日期和星期几返回传入日期当前星期(星期天排除为当前星期)的天数,向上查询 | 3 |
YeardayFromDate | YeardayFromDate('2008-09-09') | 传入日期返回传入日期的当天数 | 253 |
YearFromDate | YearFromDate('2008-09-09') | 传入日期返回年份数 | 2008 |
YearweekFromDate | YearweekFromDate('2008-09-09') | 传入日期返回传入日期的所在周数 | 37 |
IsValid | if IsValid('int32', CUSTOMER) then AsInteger(DSLink2.TXN_CNT) else ''
if IsValid('dfloat',DSLink2.TXN_AMT) then DSLink2.TXN_AMT else '' | 传入一个参数和他的匹配类型,如果匹配就输出,不匹配则为空 "date", "decimal", "dfloat", "sfloat", "int8", "uint8","int16", "uint16", "int32","uint32", "int64", "uint64", "raw","string", "time", "timestamp"."ustring" | 123
0000123. |
Logicl
函数名称 | 测试用列 | 描述 | 测试结果 |
BitAnd | BitAnd(235,25) 11101011 ---235 00011001 ---25 00001001 --9
| 传入两个int型参数,将他们转化为二进制,通过“或”关系将最后参数返回,当为1与0比为0,1与1比为1 | 9 |
BitCompress | if BitCompress(0)=0 then 0 else 1 | 传入的参数只能为1或0,当条件成立返回1 | 0 |
BitOr | BitOr (321,123) 101000001 ---321 001111011 ---123 101111011 ---379 | 传入两个int型参数,将他们转化为二进制,通过“与”关系将最后参数返回,当为1与0比为1,1与1比为1 | 379 |
BitXOr | BitXOr(321,123) 101000001 ---321 001111011 ---123 100111010 ---314 | 传入两个int型参数,将他们转化为二进制,当1与0比为1,1与1比为0 | 314 |
Not | Not(1=1) | 判断表达式,如果为真返回为0,如果为假返回为1 | 0 |
Number
函数名称 | 测试用列 | 描述 | 测试结果 |
AsDouble | AsDouble(12.123456) | 保留4为小数最后一位四舍五入 | 12.1235 |
AsFloat | AsFloat(13.654321) | 保留4为小数最后一位四舍五入 | 13.6543 |
AsInteger | AsInteger(11.23) | 传入小数返回整数 | 11 |
MantissaFromDecimal | MantissaFromDecimal(15.123456) | 取小数尾数 | 1.23456e+09 1234560000 |
MantissaFromDFloat | MantissaFromDFloat(16.22222) | 取小数尾数 | 2222 |
String
函数名称 | 测试用列 | 描述 | 测试结果 |
AlNum | AlNum('Sting12') | 传入的参数如果string类型返回1 | 1 |
Alpha | Alpha('String') | 传入的参数为必须为string不能带有其他字符,如果有则为0 | 1 |
CompactWhiteSpace | CompactWhiteSpace('Str ing'):' ':CompactWhiteSpace('a bc d'):' ':CompactWhiteSpace('A B C D') | 将多个字符串类型串联为一个类型 | Str ing a bc d A B C D |
Compare | Compare('abc','def','L'):' ':Compare('def','abc','R'):' ':Compare('qwer','qwer','R') | 比较字符串大小,按照ascII比较方式 | -1 1 0 |
CompareNoCase | CompareNoCase('B','C'):' ':CompareNoCase('a','a') | 比较两个字符串是否相等,相等为0,不相等为-1 | -1 0 |
CompareNum | CompareNum('A','B',1):' ':CompareNum('B','B',1):' ':CompareNum('abc','cde',3):' ':CompareNum('abcd','a',4) | 比较传入的参数,如果绝对相同为0,传入的arg2包含在传入的arg1中为1,不相等为-1 | -1 0 -1 1 |
Convert | Convert('bd','12', 'abcdefghijk') | Arg1查找的参数,arg2是需要修改为的参数。最后返回修改后的结果 | a1c2efghijk |
Count | Count('jxj','j') | 获取相同字符的合计 | 2 |
Dcount | Dcount('jxj','j') | 获取相同字符的合计然后再加1 | 3 |
DownCase | DownCase('ACRM123ACrm123acRM') | 将字符中的大写转化为小写 | acrm123acrm123acrm |
DQuote | DQuote('abcd':'mnb'):'123' | 将两个字符串连接起来用双引包括 | "abcdmnb"123 |
Field | Field('parallel','l',3) | 将字符串中的字符串取出来 | e |
Index | Index('a;lkdfjioquejrlkjasopdifu','j',2) | 索引字符串’j’直到发现第2个’j’的时候停止并返回长度 | 13 |
Left | Left('abcdefghijk',4) | 从左边取4位字符串 | abcd |
Right | Right('abcdefghijk',4) | 从右边取4位字符串 | hijk |
Len | Len('asdlkfjalsdf') | 返回字符串的长度 | 12 |
Num | Num(1234) | 如果是数字返回为1,非数字返回为0 | 1 |
PadString | PadString('abcd','acr',3) | 第一个参数为输出参数,第二个为追加参数(只取字符串的第一位),第3个为追加几次 | abcdaaa |
Soundex | Soundex('longtop') | 通过英文发音的比对来获取 | L523 |
|
|
|
|
Squote | Squote('asdfasdf':'12') | 将传入的字符串想通过单引号包括 | 'asdfasdf12' |
Str | Str("A", 20 - Len('asd')) | 将传入第一个参数和后面数字做联系,复制第一参数 | AAAAAAAAAAAAAAAAA |
Space | Space(10 - Len('asdf')) | 追加空格 | ‘ ‘ |
StripWhiteSpace | StripWhiteSpace('ab e q w e r') | 将字符串中所有的空格去掉 | abeqwer |
Trim | Trim(' askd ') Trim(' kk a b c ',' ') Trim(' kk a b c ',' ','A') Trim(' kk a b c ',' ','L') Trim(' kk a b c ',' ','B') Trim(' kk a b c ',' ','R') Trim(' kk a b c ',' ','F') Trim(' kk a b c ',' ','E') Trim(' kk a b c ',' ','D') | 去除左右两边空格 去除多余的空格 去除全部的空格 去除左右的空格 去除左右两边 去左右两边和多余空格 去除左边空格 去除右边空格 去除多余的空格 | askd kk a b c kkabc kk a b c kk a b c kk a b c kk a b c kk a b c kk a b c |
TrimB | TrimB(' kkkk ') | 去除右边的空格 | kkkk |
TrimF | TrimF(' kkkk ') | 去除左边的空格 | kkkk |
TrimLeadingTrailing | TrimLeadingTrailing(' k k k k ') | 去除左右两边空格删除第一和最后的空格 | k k k k |
UpCase | UpCase('abcd') | 将所有小写转换为大写 | ABCD |
函数名称 | 测试用列 | 描述 | 测试结果 |
Char | Char(123) | 将数字转化为对应的ASCII码 | { |
DateToString | DateToString('2008-08-01',"%yyyy-%mm-%dd") | 将日期转化为字符 | 2008-08-01 |
DecimalToDecimal | DecimalToDecimal(13.55) | 将decimecl类型转化为decimal类型 | 0000000000000000000000000013.5500000000 |
DecimalToDFloat | DecimalToDFloat(13.5678897866854464) | 将decimecl类型转化为float类型并四舍五入 | 13.5679 |
DecimalToString | DecimalToString(123.567) | 将decimecl类型转化为string类型输出 | 0000000000000000000000000123.5670000000 |
DFloatToDecimal | DFloatToDecimal(12.5658) | 将float转化为decimal类型 | 0000000000000000000000000012.5658000000 |
DFloatToStringNoExp | DFloatToStringNoExp(29.10,'2'):' ':DFloatToStringNoExp(29.120,'3'):' ':DFloatToStringNoExp(29.120,'4') | 取dfloat的位数并转化为string输出 | 29 29.12 29.12 |
Seq | Seq ('A'):' ':Seq('B') | 将传入的字符转化为相对应的ASCII数字 | 65 66 |
StringToDate | StringToDate('19821114',"%yyyy%mm%dd") | 将字符类型的日期转化为日期类型输出 | 1982-11-14 |
StringToDecimal | StringToDecimal('12.345','ceil'):' ':StringToDecimal('12.345','floor') | 得到最大的。 得到最小的。 | 0000000000000000000000000012.3450000000 000 |
StringToTime | StringToTime('081114',"%hh%nn%ss") | 将字符类型的时间转化为时间类型 | 08:11:14 |
StringToTimestamp | StringToTimestamp('19261212 001245',"%yyyy%mm%dd %hh%nn%ss") | 将字符的timestamp类型转化为timestamp类型 | 1926-12-12 00:12:45 |
TimestampToDate | TimestampToDate(CurrentTimestamp()) | 将timestamp转化为日期类型 | 2008-08-12 |
TimestampToString | TimestampToString(CurrentTimestamp(),"%yyyy/%mm/%dd %hh/%nn/%ss") | 将日期类型按照返回的格式转化为字符类型 | 2008/08/12 15/18/18 |
TimestampToTime | TimestampToTime(CurrentTimestamp()) | 将timestamp转化为时间类型 | 15:18:18 |
TimeToString | TimeToString(CurrentTime(),"%hh-%nn-%ss") | 将时间类型按照返回的格式转化为字符类型 | 15-18-18 |
StringToUString | StringToUString('Ustring') | 将string类型转化为Ustring类型(Char, varchar, longvarchar) | Ustring |
UStringToString | UStringToString('string') | 将Ustring(Char, varchar, longvarchar)类型转化为string类型 | string |