您的位置:首页 > 其它

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

2011-03-24 21:25 489 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: