Datastage 中Transformer Stage:各个函数的解析

来源:互联网 发布:js修改style display 编辑:程序博客网 时间:2024/06/05 19:59

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

原创粉丝点击