DataStage常用函数大全Word格式.docx
《DataStage常用函数大全Word格式.docx》由会员分享,可在线阅读,更多相关《DataStage常用函数大全Word格式.docx(43页珍藏版)》请在冰豆网上搜索。
27.TimestampToString15
28.TimestampToTime16
29.TimeToString16
30.TimeToDecimal16
31.UstringToString17
二、字符串函数17
32.AlNum17
33.Alpha17
34.CompactWhiteSpace18
35.Compare18
36.CompareNoCase18
37.CompareNum18
38.CompareNumNoCase19
39.Convert19
40.Count19
41.Dcount19
42.DownCase20
43.DQuote20
44.Field20
45.Index20
46.Left21
47.Len21
48.Num21
49.PadString21
50.Right21
51.Soundex22
52.Space22
53.SQuote22
54.Str22
55.StripWhiteSpace23
56.Trim23
57.TrimB24
58.TrimF24
59.TrimLeadingTrailing24
60.UpCase24
三、数字函数25
61.AsDouble25
62.AsFloat25
63.AsInteger25
64.MantissaFromDecimal26
65.MantissaFromDFloat26
四、日期和时间函数26
66.CurrentDate26
67.CurrentTime27
68.CurrentTimeMS27
69.CurrentTimestamp27
70.CurrentTimestampMS27
71.DateFromDaysSince27
72.DateFromComponents28
73.DateFromJulianDay28
74.DateOffsetByComponents28
75.DaysSinceFromDate29
76.DaysInMonth29
77.DaysInYear29
78.DateOffsetByDays30
79.HoursFromTime30
80.JulianDayFromDate30
81.MicroSecondsFromTime30
82.MidnightSecondsFromTime31
83.MinutesFromTime31
84.MonthDayFromDate31
85.MonthFromDate31
86.NextWeekdayFromDate32
87.NthWeekdayFromDate32
88.PreviousWeekdayFromDate32
89.SecondsFromTime32
90.SecondsSinceFromTimestamp33
91.TimeDate33
92.TimeFromComponents33
93.TimeFromMidnightSeconds33
94.TimeOffsetByComponents34
95.TimeOffsetBySeconds34
96.TimestampFromDateTime34
97.TimestampFromSecondsSince34
98.TimestampFromTimet35
99.TimestampOffsetByComponents35
100.TimestampOffsetBySeconds35
101.TimetFromTimestamp36
102.WeekdayFromDate36
103.YeardayFromDate36
104.YearFromDate36
105.YearweekFromDate37
五、Null处理函数37
106.IsNotNull37
107.IsNull37
108.NullToEmpty38
109.NullToZero38
110.NullToValue38
111.SetNull38
一、类型转换函数
类型转换函数用于更改参数的类型。
以下函数位于表达式编辑器的“类型转换”类别中。
方括号表示参数是可选的。
缺省日期格式为%yyyy-%mm-%dd。
以下示例按照Transformer阶段的“派生”字段中所示来显示这些函数。
1.Char
根据其数字代码值生成一个ASCII字符。
您可以指定allow8bits参数来转换8位ASCII值(可选)。
∙输入:
code(number),[allow8bits]
∙输出:
result(char)
∙示例。
以下示例将ASCII码65输出为字符A。
Char(65)
2.DateToString
返回给定日期的字符串表示。
可以指定字符串的格式(可选)。
date(date),[format(string)]
result(string)
以下示例会将mylink.mydate列中包含的日期输出为字符串。
如果mylink.mydate包含日期2009年8月18日,那么输出字符串为“2009-08-18”:
DateToString(mylink.mydate)
以下示例会将mylink.mydate列中包含的日期输出为dd:
mm:
yyyy格式的字符串。
如果mylink.mydate包含日期2009年8月18日,那么输出字符串为“18:
08:
2009”:
DateToString(mylink.mydate,"
%dd:
%mm:
%yyyy"
)
3.DateToDecimal
将给定的日期返回为压缩十进制值。
如果您的目标十进制数指定了小数位,那么部分日期会在小数点后显示。
您可以指定格式字符串来指定如何以十进制数形式存储日期(可选)。
缺省格式字符串为“%yyyy%mm%dd”,因此,日期2009-08-25将存储为十进制数20090825。
格式字符串只能指定包含数字的格式。
例如,不能指定诸如“%yyyy-%mm-%dd”之类的格式字符串,这是因为压缩十进制值中不能存储连字符(-)。
以下标记对于与十进制值之间的转换有效:
%yyyy(四位数表示的年份)
%yy(两位数表示的年份)
%NNNNyy(截断的两位数年份)
%mm(两位数表示的月份)
%dd(两位数表示的一月中的第几天)
%ddd(三位数表示的一年中的第几天)
字面值数字0到9都有效。
basedate(date)[,format(string)]
converted_date(decimal)
如果mylink.basedate列包含日期2012-08-18,那么以下函数会将日期存储为十进制数18082012:
DateToDecimal(mylink.basedate,"
%dd%mm%yyyy"
如果mylink.basedate列包含日期2012-08-18,并且目标列的长度为10,小数位为2,那么以下函数会将日期存储为十进制数201208.18:
DateToDecimal(mylink.basedate)
4.DecimalToDate
将给定的压缩十进制数返回为日期。
在将十进制数转换为日期时,会忽略其符号和小数位。
basedec(decimal)[,format(string)]
date
如果mylink.mydecdata列包含值18082012,那么以下函数将返回日期2012-08-18:
DecimalToDate(mylink.basedate,"
如果mylink.mydecdata列包含值-201208.18,那么以下函数将返回日期2012-08-18:
DecimalToDate(mylink.basedate)
5.DecimalToDecimal
以具有目标列定义中指定精度和小数位的十进制表示形式返回给定的十进制数。
参数rtype指定取整类型,并设置为以下某个值(可选):
ceil。
向正无穷方向对源字段取整。
例如,1.4->
2,-1.6->
-1。
floor。
向负无穷方向对源字段取整。
例如,1.6->
1,-1.4->
-2。
round_inf。
通过向正无穷方向对正数值取整并向负无穷方向对负数值取整,向最接近的可表示值对源字段进行取整或截断。
1,1.5->
2,-1.4->
-1,-1.5->
trunc_zero。
不论符号如何,废弃位于目标数据支持的最右侧小数位右侧的任何小数位。
例如,如果目标数据是整数,那么截断所有小数位。
如果目标数据是另一个具有更少小数位的小数,那么按照目标小数的小数位数进行取整或截断。
1,-1.6->
decimal(decimal)[,rtype(string)]
result(decimal)
如果mylink.mydec列包含十进制数2.5345,那么以下函数将返回十进制数00000002.54。
DecimalToDecimal(mylink.mydec,"
ceil"
以下函数将返回十进制数00000002.53。
floor"
trunc_zero"
round_inf"
在所有这些示例中,目标十进制的长度为10,小数位为2。
6.DecimalToDFloat
以dfloat表示形式返回给定的十进制数。
参数“fix_zero”指定所有零十进制值均视为有效(缺省情况下,全部由零组成的十进制数将视为无效)(可选)。
decimal(decimal)[,"
fix_zero"
]
result(dfloat)
如果mylink.mydec列包含十进制数00000004.00,那么以下函数将返回dfloat数4.00000000000000000E+00。
DecimalToDFloat(mylink.mydec,"
如果mylink.mydec列包含十进制数00012344.00,那么以下函数将返回dfloat数1.23440000000000000E+04。
如果mylink.mydec列包含十进制数00012344.120,那么以下函数将返回dfloat数1.23441200000000010E+04。
DecimalToDFloat(mylink.mydec)
如果mylink.mydec列包含十进制数00012344.000,那么以下函数将返回dfloat数1.23440000000000000E+04。
7.DecimalToString
将给定的十进制数返回为字符串。
这包括压缩十进制表示的符号位都为0以及都为内容数字的情况。
该特性只在“fix_zero”为true时才视为有效。
如果mylink.mydec列包含十进制数00000004.00,那么以下函数将返回字符串“4”:
DecimalToString(mylink.mydec,"
suppress_zero"
如果mylink.mydec列包含十进制数00000004.00,那么以下函数将返回字符串“0000000000000000000000000004.0000000000”。
如果mylink.mydec列包含十进制数00012344.00。
那么以下函数将返回字符串“12344”。
如果mylink.mydec列包含十进制数00012344.00,那么以下函数将返回字符串“0000000000000000000000012344.0000000000”。
如果mylink.mydec列包含十进制数00012344.120,那么以下函数将返回字符串“0000000000000000000000012344.1200000000”。
如果mylink.mydec列包含十进制数00012344.120,那么以下函数将返回字符串“12344.12”:
如果mylink.mydec列包含十进制数00012344.120,那么以下函数将返回字符串“0000000000000000000000012344.120000000”。
DecimalToString(mylink.mydec)
如果mylink.mydec列包含十进制数00012344.000,那么以下函数将返回字符串“0000000000000000000000012344.0000000000”。
8.DecimalToTime
将给定的压缩十进制数返回为时间。
您可以指定格式字符串来指定如何以十进制数形式存储时间(可选)。
缺省格式字符串为“%hh%nn%ss”,因此,时间14:
03:
22将存储为十进制数140322。
例如,不能指定诸如“%hh:
%nn:
%ss”之类的格式字符串,这是因为压缩十进制值中不能存储冒号(:
)。
%hh(使用24小时制的以两位数表示的小时数)
%nn(两位数表示的分钟数)
%ss(两位数表示的秒数)
%ss.N(由两位数表示的秒数加上所允许的小数位数。
小数位数从1到6,包括1和6)。
如果指定的格式包含微秒(例如,%ss.4),那么将在十进制值中推断小数点的位置。
小数点的位置不必与指定的十进制小数位一致(例如,小数位=4)。
time(time)[,format(string)]
∙示例:
如果mylink.mytimedec列包含十进制值200658,那么以下函数将返回时间20:
06:
58:
DecimalToTime(mylink.mytimedec)
如果mylink.mytimedec列包含十进制值580620,那么以下函数将返回时间20:
DecimalToTime(mylink.mytimedec,"
%ss%nn%hh"
9.DecimalToTimestamp
将给定的压缩十进制数返回为时间戳记。
您可以指定格式字符串来指定如何以十进制数形式存储时间戳记(可选)。
缺省格式字符串为“%yyyy%mm%dd%hh%nn%ss”,因此,时间戳记2009-08-2514:
22将存储为十进制数20090825140322。
例如,不能指定诸如“%yyyy/%mm/%dd%hh:
%ss”之类的格式字符串,这是因为压缩十进制值中不能存储斜杠(/)和冒号(:
timestamp(timestamp)[,format(string)]
如果mylink.mytimestampdec列包含值19580818200658,那么以下函数将返回时间戳记1958–08–1820:
DecimalToTimestamp(mylink.mytimestampdec)
如果mylink.mytimestampdec列包含十进制值200658580818,那么以下函数将返回时间戳记1958–08–1820:
DecimalToTimestamp(mylink.mytimestampdec,"
%hh%nn%ss%yy%mm%dd"
10.DFloatToDecimal
以十进制表示形式返回给定的dfloat。
number(dfloat),[rtype(string)]
如果mylink.myfloat列包含dfloat数2.534,那么以下函数将返回十进制数00000002.54。
DFloatToDecimal(mylink.mydec,"
如果mylink.myfloat列包含dfloat数2.534,那么以下函数将返回十进制数00000002.53。
11.DfloatToStringNoExp
使用指定小数位,以无指数的字符串表示形式返回给定的dfloat。
number(dfloat),scale(string)
如果mylink.myfloat列包含dfloat数2.534,那么以下函数将返回字符串00000002.50:
DfloatToS