天天看點

DataStage_Transformer常用函數

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’) 傳回一個微妙數
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
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

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

CompareNoCase CompareNoCase('B','C'):' ':CompareNoCase('a','a') 比較兩個字元串是否相等,相等為0,不相等為-1 -1
CompareNum CompareNum('A','B',1):' ':CompareNum('B','B',1):' ':CompareNum('abc','cde',3):' ':CompareNum('abcd','a',4) 比較傳入的參數,如果絕對相同為0,傳入的arg2包含在傳入的arg1中為1,不相等為-1

-1

-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類型