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

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型参数,将他们转化为二进制,通过“或”关系将最后参数返回,当为10比为011比为1

9

BitCompress

if BitCompress(0)=0 then 0 else 1

传入的参数只能为10,当条件成立返回1

0

BitOr

BitOr (321,123)

101000001  ---321

001111011  ---123

101111011  ---379

传入两个int型参数,将他们转化为二进制,通过“与”关系将最后参数返回,当为10比为111比为1

379

BitXOr

BitXOr(321,123)

101000001  ---321

001111011  ---123

100111010  ---314

传入两个int型参数,将他们转化为二进制,当10比为111比为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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值