DataStage Transformer函数说明,可作为开发知识手册使用。

浏览: 10129

 之前收集的关于 DataStage Transformer 函数的文档,作为帮助手册使用。

一、          日期时间

1      DateFromDaysSince

【函数名】:DateFromDaysSince

【函数形式】:date DateFromDaysSince(int32day_number,date baseline_date)

                   dateDateFromDaysSince(int32 day_number,string baseline_date)

(1)    【功能】:返回基准日期baseline_date一定天数day_number之后(之前)某一天的日期

【参数】:

(2)    day_number:

1)       类型:int32

2)       值域:在[-2^31,2^31-1]范围内的整数

(3)    baseline_date

1)       类型:date或string

2)       值域:公元元年1月1日-公元9999年12月31日之间的任一日期或对应的字符串表示。

【返回值】:

(1)   类型:date

(2)   值域:

Ø  公元元年1月1日-公元9999年12月31日之间的任一日期

【备注】

(1)    如果参数day_number为负数,代表返回基准日期之前第day_number天的日期。

(2)    如果参数baseline_date的类型为string,则其值必须为”yyyy-mm-dd”的形式,且对应日期合法。(年份不到4位的和月份、日期不到2位的前面必须加0补齐)

 

【举例】:

表达式 返回值 说明
DateFromDaysSince (0,"2007-12-24") 2007-12-24 返回值为date类型
DateFromDaysSince (-1,"2007-12-24") 2007-12-23 返回值为date类型
DateFromDaysSince(-1,"0000-01-01")   错误,不能返回公元前的日期
DateFromDaysSince(123,"2007-8-9")   错误,年份、月份或日期不够4位、2位的必须在前面加0补齐

 

2      DateFromJulianDay

【函数名】:DateFromJulianDay

【函数形式】:date DateFromJulianDay(uint32juliandate)

【功能】:返回一个Julian日期值对应的date类型日期值

【参数】:

(1)    juliandate

1)       类型:uint32(32位无符号整数)

2)       值域:范围在[0,2^32-1]内的任意整数

【返回值】:

(1)   类型:date

(2)   值域:

Ø  公元元年1月1日-公元9999年12月31日之间的任一日期

【备注】

(1)   参数juliandate的取值最好在[1721426,5373484]范围内,否则返回值会超过date类型的表示范围。

【举例】:

表达式 返回值 说明
DateFromJulianDay(1721426) 0001-01-01 返回值为date类型
DateFromJulianDay(5373484) 9999-12-31 返回值为date类型
DateFromJulianDay(2300000) 1585-01-31 返回值为date类型

 

 

3      DaysSinceFromDate

【函数名】:DaysSinceFromDate

【函数形式】:int32 DaysSinceFromDate(datesource_date,date given_date)

                      int32 DaysSinceFromDate(string source_date, stringgiven_date)

【功能】:返回source_date和given_date之间相差的天数。(相当于source_date-given_date)

【参数】:

(1)   source_date:

1)       类型:date或者string

2)       值域:公元元年1月1日-公元9999年12月31日之间的任一日期或对应的字符串表示。

(2)   given_date:

1)       类型:date或者string

2)       值域:公元元年1月1日-公元9999年12月31日之间的任一日期或对应的字符串表示。

【返回值】:

(1)   类型:int32

(2)   值域:

Ø 在[-2^31,2^31-1]范围内的整数

Ø 0,异常值

【备注】

(1)   返回值为负数代表source_date在given_date之前

(2)   只有两个参数都为合法的日期值时,函数返回值

(3)   只有参数source_date不合法时,函数返回异常值0

(4)   参数given_date不合法时,抛出参数解析异常,Job失败

 

 

【举例】:

表达式 返回值 说明
DaysSinceFromDate("2007-01-01","2007-01-01") 0 正常,两个日期相等
DaysSinceFromDate("2007-01-01","2007-01-02") -1 正常
DaysSinceFromDate("2007-01-02","2007-01-01") 1 正常
DaysSinceFromDate("test","2007-01-01") 0 异常
DaysSinceFromDate("2007-01-02","test")   参数解析错误,Job失败

 

4      HoursFromTime

【函数名】:HoursFromTime

【函数形式】:int8 HoursFromTime(timet)

                      int8 HoursFromTime(string t)

【功能】:返回时间值中的小时域的值

【参数】:

(1)   t

1)       类型:time或string

2)       值域:time类型的时间值或任意字符串

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  [0,23],正常值

Ø  48,异常值。

【备注】

(1)     只有时间值或字符串表示的时间值在00:00:00到23:59:59之间时,函数返回正常的小时值,否则返回异常值48

 

【举例】:

表达式 返回值 说明
HoursFromTime("00:00:00") 0 正常
HoursFromTime("24:00:00") 48 异常
HoursFromTime("11:59:59") 11 正常
HoursFromTime("23:59:59") 23 正常
HoursFromTime("test") 48 异常

 

5      JulianDayFromTime

【函数名】:JulianDayFromDate

【函数形式】:int32 JulianDayFromDate(dated)

                      int32 JulianDayFromDate(string d)

【功能】:返回一个date类型日期值对应的Julian日期值

【参数】:

(1)   d

1)       类型:date或string

2)       值域:公元元年1月1日-公元9999年12月31日之间的任一日期或对应的字符串表示。

【返回值】:

(1)   类型:uint32

(2)   值域:

Ø  范围在[1, 5373484]内的任意整数,正常值

Ø  0,异常值

【备注】

(1)   参数d表示的日期值非法时,函数返回异常值0

(2)   年份、月份或日不够4位或2位的前面要加0补齐,否则函数返回异常值0

 

【举例】:

表达式 返回值 说明
JulianDayFromDate("2007-01-01") 2454102 正常
JulianDayFromDate("0001-01-01") 1721426 正常
JulianDayFromDate("test") 0 异常
JulianDayFromDate("2008-12-1") 0 异常

 

 

6      MicroSecondsFromTime

【函数名】:MicroSecondsFromTime

【函数形式】:int32 MicroSecondsFromTime(time t)

                      int32 MicroSecondsFromTime (string t)

【功能】:返回时间值中的微秒域的值

【参数】:

(1)   t

1)       类型:time或string

2)       值域:time类型的时间值或任意字符串

【返回值】:

(1)   类型:int32

(2)   值域:

Ø  [1,999999],正常值

Ø  0,异常值。

【备注】

(1)   当参数t为带Microsecond扩展的time类型变量,且其值有微秒值时,返回正常的微秒值。

(2)    当参数t不带Microsecond扩展、为字符串形式或者其值无微秒值时,返回异常值0

 

【举例】:

表达式 返回值 说明
MicroSecondsFromTime(time1) 123456 正常(time1值为12:00:00.123456)
MicroSecondsFromTime(time2) 0 异常(time2值为 12:00:00)
MicroSecondsFromTime(time3) 0 异常(time3值为 12:61:00.123)
MicroSecondsFromTime(time4) 920000 正常(time4值为12:00:00.920000)
MicroSecondsFromTime(“08:06:01.020331”) 0 异常(不能直接获取字符串中的微秒值)
MicroSecondsFromTime(StringToTime("12:00:00.123456","%hh:%nn:%ss.6")) 0 异常(理论上应该返回正常值123456,但实际测试结果返回异常值0)

 

 

7      MinutesFromTime

【函数名】:MinutesFromTime

【函数形式】:int8 MinutesFromTime(time t)

                      int8 MinutesFromTime (string t)

【功能】:返回时间值中的分钟域的值

【参数】:

(1)   t

1)       类型:time或string

2)       值域:time类型的时间值或任意字符串

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  [0,59],正常值

Ø  0,异常值。

【备注】

(1)     只有时间值或字符串表示的时间值在00:00:00到23:59:59之间时,函数返回正常的分钟,否则返回异常值0

(2)    返回值0也可能是正常的分钟值

 

【举例】:

表达式 返回值 说明
MinutesFromTime("12:20:11") 20 正常
MinutesFromTime("12:00:11") 0 正常
MinutesFromTime("12:60:11") 0 异常
MinutesFromTime("08:50:92") 0 异常
MinutesFromTime("test") 0 异常

 

8      MonthDayFromDate

【函数名】:MonthDayFromTime

【函数形式】:int8 MonthDayFromTime(date t)

                      int8 MonthDayFromTime (string t)

【功能】:返回日期值中的日域的值

【参数】:

(1)   t

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  [1,31],正常值

Ø  0,异常值。

【备注】

(1)     只有日期值或字符串表示的日期值合法时,函数返回正常的值,否则返回异常值0

【举例】:

表达式 返回值 说明
MonthDayFromDate("2007-12-31") 31 正常
MonthDayFromDate("2007-02-29") 0 异常
MonthDayFromDate("2007-02-28") 28 正常
MonthDayFromDate("2007-12-40") 0 异常
MonthDayFromDate("test") 0 异常

 

9      MonthFromDate

【函数名】:MonthFromDate

【函数形式】:int8MonthFromDate(date t)

                      int8 MonthFromDate(string t)

【功能】:返回日期值中的月域的值

【参数】:

(1)   t

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  [1,12],正常值

Ø  [0],异常值

【备注】

(1)    只有日期值或字符串表示的日期值合法时,函数返回正常的值,否则返回异常值0

 

【举例】:

表达式 返回值 说明
MonthFromDate("2007-11-23")    11 正常
MonthFromDate("0000-00-00")    0 异常,非法日期值
MonthFromDate("2007-1-23") 0 异常,月和日必须为两位,不够用0补齐  
MonthFromDate("2007-13-23") 0 异常,非法日期值
MonthDayFromDate("test")          0 异常,非法日期值

 

10   NextWeekdayFromDate

【函数名】:NextWeekdayFromDate

【函数形式】:dateNextWeekdayFromDate(date source,string dayofweek)

                      date NextWeekdayFromDate(string source,stringdayofweek)

【功能】:返回日期source之后最近的指定的日期,该日期为星期几由dayofweek指定。

【参数】:

(1)   source

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

(2)   dayofweek

1)       类型:string

2)       值域:"MON"、"TUE"、"WED"、"THU"、"FRI"、"SAT"、"SUN"(星期几的缩写,大小写不敏感)

【返回值】:

(1)   类型:date

(2)   值域:

Ø  公元元年1月1日-公元9999年12月31日之间的任一日期

【备注】

(1)    只有参数source为合法的日期值时,函数返回正常日期值

(2)    参数dayofweek不为星期几的缩写时,抛出参数解析异常,Job失败

(3) 如果source与dayofweek匹配(如source为"2007-11-12",是星期一,而dayofweek为”MON”),函数返回值和source的值相等

 

【举例】:

表达式 返回值 说明
NextWeekdayFromDate("2007-11-12","WED") "2007-11-14" 正常
NextWeekdayFromDate("2007-11-12","MON") "2007-11-12" 正常,匹配
NextWeekdayFromDate("2007-1-12","SUN")   错误,参数source不合法
NextWeekdayFromDate("2007-11-12","STA")   Job失败

 

 

11   PreviousWeekdayFromDate

【函数名】:PreviousWeekdayFromDate

【函数形式】:datePreviousWeekdayFromDate(date source,string dayofweek)

                      date PreviousWeekdayFromDate(stringsource,string dayofweek)

【功能】:返回日期source之前最近的指定的日期,该日期为星期几由dayofweek指定。

【参数】:

(1)   source

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

(2)   dayofweek

1)       类型:string

2)       值域:"MON"、"TUE"、"WED"、"THU"、"FRI"、"SAT"、"SUN"(星期几的缩写,大小写不敏感)

【返回值】:

(1)   类型:date

(2)   值域:

Ø  公元元年1月1日-公元9999年12月31日之间的任一日期

【备注】

(1)    只有参数source为合法的日期值时,函数返回正常日期值

(2)    参数dayofweek不为星期几的缩写时,抛出参数解析异常,Job失败

(3) 如果source与dayofweek匹配(如source为"2007-11-12",是星期一,而dayofweek为”MON”),函数返回值和source的值相等

 

【举例】:

表达式 返回值 说明
NextWeekdayFromDate("2007-11-12","WED") "2007-11-07" 正常
NextWeekdayFromDate("2007-11-12","MON") "2007-11-12" 正常,匹配
NextWeekdayFromDate("2007-1-12","SUN")   错误,参数source不合法
NextWeekdayFromDate("2007-11-12","STA")   Job失败

 

12   SecondsFromTime

【函数名】:SecondsFromTime

【函数形式】:dfloatSecondsFromTime(time t)

                      dfloat SecondsFromTime(string t)

【功能】:返回时间值中的秒域的值

【参数】:

(1)   t

1)       类型:time

2)       值域:time类型的时间值或任意字符串

【返回值】:

(1)   类型:dfloat

(2)   值域:

Ø  [0,59],正常值

Ø  0,异常值

【备注】

(1)    只有时间值或字符串表示的时间值在00:00:00到23:59:59之间时,函数返回正常的秒,否则返回异常值0

(2)    返回值0也可能是正常的秒值

 

【举例】:

表达式 返回值 说明
SecondsFromTime("12:23:00") 0 正常
SecondsFromTime("12:23:60") 0 异常
SecondsFromTime("25:23:00") 0 异常
SecondsFromTime("test") 0 异常

 

 

13   SecondsSinceFromTimestamp

【函数名】:SecondsSinceFromTimestamp

【函数形式】:dfloatSecondsSinceFromTimestamp(timestamp dest,timestamp source)

                      dfloat SecondsSinceFromTimestamp(stringdest,string source)

【功能】:返回两个timestamp之间的秒数(相当于dest-source)

【参数】:

(1)   dest

1)       类型:timestamp或string

2)       值域:timestamp类型的时间戳值或任意字符串

(2)   source

1)       类型:timestamp或string

2)       值域:timestamp类型的时间戳值或任意字符串

【返回值】:

(1)   类型:dfloat

(2)   值域:

Ø   IEEE 64位双精度浮点数

Ø  异常值为:不确定

【备注】

(1)   返回值为负数代表dest在source之前。

(2)   只有两个参数都为合法的时间戳值时,函数返回正常值

(3)   只有参数dest不合法时,函数返回值不确定

(4)   参数source不合法时,抛出参数解析异常,Job失败

 

【举例】:

表达式 返回值 说明
SecondsSinceFromTimestamp("2007-11-01 01:00:00","2007-11-01 01:00:59") -59 正常
SecondsSinceFromTimestamp("2007-1-01 01:00:00","2007-11-01 01:00:00") 4.94525e-77 异常
SecondsSinceFromTimestamp("www","2007-11-01 01:00:00") 0 异常
SecondsSinceFromTimestamp("2007-11-01 01:00:00","www")   参数解析异常,Job失败

 

14   TimeDate

【函数名】:TimeDate

【函数形式】:stringTimeDate()

【功能】:以字符串的形式返回ETL服务器当前系统的日期和时间

【参数】:无

【返回值】:

(1)   类型:string

(2)   值域:

Ø   符合日期时间格式的字符串

【备注】

(1)   返回的时间是当前Transformer实例运行所在服务器的系统时间。

(2)   返回的时间格式如:"HH:MI:SS DD MM YYYY"

【举例】:

表达式 返回值 说明
TimeDate() "17:22:57 14 Jan 2008"  

 

15   TimeFromMidnightSeconds

【函数名】:TImeFromMidnightSeconds

【函数形式】:timeTImeFromMidnightSeconds(dfloat seconds)

【功能】:返回从00:00:00算起之后或之前第seconds秒的时间值

【参数】:

(1)   seconds

1)       类型:dfloat

2)       值域:IEEE 64位双精度浮点数表示范围内的任意数

【返回值】:

(1)   类型:time

(2)   值域:

Ø   00:00:00到23:59:59之间的任意时间值

【备注】

(1)    参数seconds为负表示返回从00:00:00算起开始之前某一时间值

(2)    参数seconds的绝对值大于等于86400(即一天的秒数)时,将seconds除86400取余后进行计算

(3)    参数seconds的小数部分都略去不计

 

【举例】:

表达式 返回值 说明
TimeFromMidnightSeconds(0) "00:00:00"  
TimeFromMidnightSeconds(86400) "00:00:00" seconds除86400取余后计算
TimeFromMidnightSeconds(86460) "00:01:00" seconds除86400取余后计算
TimeFromMidnightSeconds(86400.9999) "00:00:00" 参数seconds的小数部分略去不计

 

 

16   TimestampFromDateTime

【函数名】:TimestampFromDateTime

【函数形式】:timestampTimestampFromDateTime(date d,time t)

                      timestamp TimestampFromDateTime(string d, stringt)

【功能】:返回参数日期d和时间t组合成的时间戳

【参数】:

(1)   d

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

(2)    

1)       类型:time或string

2)       值域:time类型的时间值或任意字符串

【返回值】:

(1)   类型:timestamp

(2)   值域:

Ø  "0001-01-0100:00:00"到"9999-12-31 23:59:59"之间的任意合法时间戳值, 正常值

Ø  "1960-01-0100:00:00",异常值

【备注】

(1)     当参数d不为合法日期值或参数t不为合法时间值时,函数返回异常值"1960-01-01 00:00:00"

 

【举例】:

表达式 返回值 说明
TimestampFromDateTime("2007-01-01","23:40:01") "2007-01-01 23:40:01" 正常
TimestampFromDateTime("2007-1-01","23:40:01") "1960-01-01 00:00:00" 异常
TimestampFromDateTime("2007-1-01","test") "1960-01-01 00:00:00" 异常
TimestampFromDateTime("2007-01-01","23:70:01") "1960-01-01 00:00:00" 异常

 

 

17   TimestampFromSecondsSince

【函数名】:TimestampFromSecondsSince

【函数形式】:timestampTimestampFromSecondsSince(dfloat seconds,timestamp base)

【功能】:返回基准时间戳base之前或之后seconds秒的时间戳值

【参数】:

(1)   seconds

1)       类型:dfloat

2)       值域:IEEE 64位双精度浮点数表示范围内的任意数

(2)   base

1)       类型:timestamp

2)       值域:"0001-01-0100:00:00"到"9999-12-31 23:59:59"之间的任意合法时间戳值

【返回值】:

(1)   类型:timestamp

(2)   值域:

Ø  "0001-01-0100:00:00"到"9999-12-31 23:59:59"之间的任意合法时间戳值

【备注】

(1)    只有参数seconds为正值时,才能返回正常的时间戳值

(2)    参数base不合法时,会抛出参数解析异常,Job失败

(3)    当基准时间戳base加second超过"9999-12-3123:59:59"时,会继续从"0001-01-0100:00:00"开始计数

 

【举例】:

表达式 返回值 说明
TimestampFromSecondsSince(1,"2007-01-01 12:00:00") "2007-01-01 12:00:01" 正常
TimestampFromSecondsSince(1,"2007-21-01 12:00:00")   抛出参数解析异常,Job失败
TimestampFromSecondsSince(-1,"2007-01-01 12:00:00")   错误,参数seconds为负
TimestampFromSecondsSince(2,"9999-12-31 23:59:59") "0001-01-01 00:00:01" 从"0001-01-01 00:00:00"开始继续计数

 

18   TimestampFromTimet

【函数名】:TimestampFromTimet

【函数形式】:timestampTimestampFromTimet(int32 timet)

【功能】:返回与"1970-01-0100:00:00"或"1970-01-0200:00:00"相差| timet|秒的一个时间戳值

【参数】:

(1)   timet

1)       类型:int32

2)       值域:在[-2^31,2^31-1]范围内的整数

【返回值】:

(1)   类型:timestamp

(2)   值域:

Ø   "0001-01-0100:00:00"到"9999-12-31 23:59:59"之间的任意合法时间戳值

【备注】

(1)    参数timet为负,表示返回"1970-01-02 00:00:00"之前| timet |秒的一个时间戳值

(2)    参数timet为正,表示返回"1970-01-0100:00:00"之后| timet |秒的一个时间戳值

(3)   参数timet超过int32表示范围的,截取低32位作为timet的值

 

【举例】:

表达式 返回值 说明
TimestampFromTimet(345565440000) "2032-05-13 10:18:40" 参数timet超过int32表示范围的,截取低32位作为timet的值
TimestampFromTimet(0) "1970-01-01 00:00:00" 基准为"1970-01-01 00:00:00"
TimestampFromTimet(-1) "1970-01-01 23:59:59" 基准为"1970-01-02 00:00:00"
TimestampFromTimet(1) "1970-01-01 00:00:01" 基准为"1970-01-01 00:00:00"

 

19   TimetFromTimestamp

【函数名】:TimetFromTimestamp

【函数形式】:int32TimetFromTimestamp(timestamp t)

                      int32 TimetFromTimestamp(string t)

【功能】:返回参数t与"1970-01-0100:00:00"之间相差的秒数

【参数】:

(1)   t

1)       类型:timestamp或string

2)       值域:timestamp类型的时间戳值或任意字符串

【返回值】:

类型:int32

值域:

Ø  在[-2^31,2^31-1]范围内的整数

【备注】

当参数t代表的时间戳值在"1970-01-0100:00:00" 之前时,函数返回值为负数

当参数t与"1970-01-0100:00:00"之间相差的秒数超过int32的表示范围时,取其低32位作为返回值

 

【举例】:

表达式 返回值 说明
TimetFromTimestamp("1970-01-01 00:00:00") 0  
TimetFromTimestamp("1969-12-31 23:59:59") -1 参数t在"1970-01-01 00:00:00" 之前
TimetFromTimestamp("0001-01-01 00:00:00") -2006054656 返回值取实际结果低32位
TimetFromTimestamp("9999-12-31 23:59:59") -769665 返回值取实际结果低32位

 

20   WeekdayFromDate

【函数名】:WeekdayFromDate

【函数形式】:int8WeekdayFromDate(date d,string origin)

                      int8 WeekdayFromDate(string d,string origin)

【功能】:返回参数d在一个星期中的序号(从0开始),一个星期中的第一天由参数origin指定

【参数】:

d

类型:date或string

值域:date类型的日期值或任意字符串

origin(可选参数,默认值为"SUN")

1)       类型:string

2)       值域:"MON"、"TUE"、"WED"、"THU"、"FRI"、"SAT"、"SUN"(星期几的缩写,大小写不敏感)

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  [0,6],正常值

Ø  0,异常值

【备注】

(1)    当参数d不为合法的日期值时,函数返回异常值0

(2)    0也可能是正常的返回值

(3)    当参数origin不为合法的星期缩写时,抛出参数解析异常,Job失败

 

【举例】:

表达式 返回值 说明
WeekdayFromDate("2007-01-01") 1 默认以星期天作为一周开始
WeekdayFromDate("2007-01-01","MON") 0 以星期一作为一周开始
WeekdayFromDate("2007-01-03","FRI") 5 以星期五作为一周开始
WeekdayFromDate("2007-01-03","SuN") 3 Origin参数大小写不敏感
WeekdayFromDate("2007-31-03","tue") 0 异常,参数d不合法
WeekdayFromDate("2007-01-03","test")   抛出参数解析异常,Job失败

 

21   YeardayFromDate

【函数名】:YeardayFromDate

【函数形式】:int16YeardayFromDate(date d)

                      int16 YeardayFromDate(string d)

【功能】:返回日期d在一年中天的序号

【参数】:

(1)   d

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

【返回值】:

类型:int16

值域:

Ø  [1,366],正常值

Ø  0,异常值

【备注】

(1)    当参数d不为合法的日期值时,函数返回异常值0

 

【举例】:

表达式 返回值 说明
YeardayFromDate("2007-01-01") 1  
YeardayFromDate("2007-12-31") 365  
YeardayFromDate("2008-12-31") 366 闰年
YeardayFromDate("2007-01-33") 0 参数d不合法,返回异常值0

 

22   YearFromDate

【函数名】:YearFromDate

【函数形式】:int16YearFromDate(date d)

                      int16 YearFromDate(string d)

【功能】:返回日期值d的年域的值

【参数】:

(1)   d

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

【返回值】:

类型:int16

值域:

Ø  [1,9999],正常值

Ø  0,异常值

【备注】

 

 

【举例】:

表达式 返回值 说明
YearFromDate("0001-01-01") 1  
YearFromDate("9999-12-31") 9999  
YearFromDate("2008-01-40") 0 参数d不合法,返回异常值0
YearFromDate("test") 0 参数d不合法,返回异常值0

 

23   YearweekFromDate

【函数名】:YearweekFromDate

【函数形式】:int16YearweekFromDate(date d)

                      int16 YearweekFromDate(string d)

【功能】: 返回日期值d所在周在一年中周的序号

【参数】:

(1)   d

1)       类型:date或string

2)       值域:date类型的日期值或任意字符串

【返回值】:

(1)   类型:int16

(2)   值域:

Ø  [1,53],正常值

Ø  0,异常值

【备注】

(1)    假设日期值d是当年的第t天,那么函数的返回值等于t除以7取整数部分再加1

(2)    当参数d不为合法的日期值时,函数返回异常值0

 

【举例】:

表达式 返回值 说明
YearweekFromDate("2005-01-01") 1  
YearweekFromDate("2005-01-08") 2  
YearweekFromDate("2007-12-31") 53  
YearweekFromDate("2008-13-31") 0 参数d不合法,返回异常值0

 

 

二、          逻辑运算

24   Not

【函数名】:Not

【函数形式】:int8Not(expression)

【功能】:返回一个逻辑表达式的反值

【参数】:

(1)   expression

1)       类型:逻辑表达式

2)       值域:任何合法的逻辑表达式

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  0,表示逻辑假

Ø  1,表示逻辑真

【备注】

 

【举例】:

表达式 返回值 说明
Not(1>0) 0  
Not(0>1) 1  
Not(StringToDate("2005-01-08","%yyyy-%mm-%dd")<=StringToDate("2005-02-08","%yyyy-%mm-%dd")) 0  
Not(StringToDate("2005-01-08","%yyyy-%mm-%dd")=StringToDate("2005-02-08","%yyyy-%mm-%dd")) 1  

 

25   BitAnd

【函数名】:BitAnd

【函数形式】:int64BitAnd(int64 op1,int64 op2)

【功能】:返回参数op1和op2按位与得到的结果

【参数】:

(1)   op1

1)       类型:int64

2)       值域: [-2^63,2^63-1]

(2)   op2

1)       类型:int64

2)       值域:[-2^63,2^63-1]

【返回值】:

(1)   类型:int64

(2)   值域:

Ø [-2^63,2^63-1]

【备注】

(1)    负数的二进制格式是以补码表示的

 

【举例】:

表达式 返回值 说明
BitAnd(-4,4) 4  
BitAnd(-5,5) 1  
BitAnd(123,123) 123  
BitAnd(123,321) 65  

 

26   BitOr

【函数名】:BitOr

【函数形式】:int64BitOr(int64 op1,int64 op2)

【功能】:返回参数op1和op2按位或得到的结果

【参数】:

(1)   op1

1)       类型:int64

2)       值域:[-2^63,2^63-1]

(2)   op2

1)       类型:int64

2)       值域:[-2^63,2^63-1]

【返回值】:

(1)   类型:int64

(2)   值域:

Ø  [-2^63,2^63-1]

【备注】

(1)    负数的二进制格式是以补码表示的

 

【举例】:

表达式 返回值 说明
BitOr(4,-4) -4  
BitOr(-5,5) -1  
BitOr(123,123) 123  
BitOr(123,321) 379  

 

27   BitXOr

【函数名】:BitXOr

【函数形式】:int64BitXOr(int64 op1,int64 op2)

【功能】:返回参数op1和op2按位异或的结果

【参数】:

(1)   op1

1)       类型:int64

2)       值域:[-2^63,2^63-1]

(2)   op2

1)       类型:int64

2)       值域:[-2^63,2^63-1]

【返回值】:

(1)   类型:int64

(2)   值域:

Ø  [-2^63,2^63-1]

【备注】

(1)    负数的二进制格式是以补码表示的

 

【举例】:

表达式 返回值 说明
BitXOr(1,1) 0  
BitXOr(4,-4) -8  
BitXOr(5,-5) -2  
BitXOr(123,321) 314  

 

28   BitExpand

【函数名】:BitExpand

【函数形式】:stringBitExpand(int64 op)

【功能】:返回一个字符串,它是参数op对应的二进制的字符串描述

【参数】:

(1)   op

类型:int64

值域:[-2^63,2^63-1]

【返回值】:

(1)   类型:string

(2)   值域:

Ø  只包含字符’0’和’1’的字符串

【备注】

(1)    返回的字符串一定有64个字符,并且只包含字符’0’和’1’

 

【举例】:

表达式 返回值 说明
BitExpand(4) "0…0100" 地方有限,这里以…代表中间重复的0或1
BitExpand(0) "0…0”
BitExpand(-1) "1…1”
BitExpand(-12310) "1…1 00111111101010”

 

29   BitCompress

【函数名】:BitCompress

【函数形式】:int64 BitCompress(stringop)

【功能】:返回二进制描述字符串op对应的数值

【参数】:

(1)   op

1)       类型:string

2)       值域:只包含字符’0’和’1’的二进制描述字符串

【返回值】:

(1)   类型:int64

(2)   值域:

Ø  [-2^63,2^63-1],正常值

Ø  0,异常值

【备注】

(1)    如果参数op包含除’0’和’1’之外的其他字符,函数返回异常值0

(2)    如果参数op不到64个字符,前面用0填充

(3)    如果参数op超过64个字符,只截取后面64个字符

 

【举例】:

表达式 返回值 说明
BitCompress("0101") 5 正常
BitCompress("www") 0 异常
BitCompress("000") 0 正常
BitCompress("3201") 0 异常

 

30   SetBit

【函数名】:SetBit

【函数形式】:int64SetBit(int64 origfield,string bitlist,int8 bitstate)

【功能】:将参数origfield中由bitlist指定的位的值置为bitstate的值,并返回得到的结果

【参数】:

(1)   origfield

1)       类型:int64

2)       值域:[-2^63,2^63-1]

(2)   bitlist

1)       类型:string

2)       值域:符合一定格式的字符串(格式见备注)

(3)   bitstate

1)       类型:int8

2)       值域:0或1

 

【返回值】:

(1)   类型:int64

(2)   值域:

Ø  [-2^63,2^63-1]

【备注】

(1)    参数bitlist的格式如下:

“1,2,3,4,5,6,7,8”

它是一个要设置的位的列表,其中以逗号分开形成一个个单元,每个单元的值表示要设置origfield的哪个位,每个单元的取值只有在[1,64]中才会设置相应位,否则忽略这个数字

(2)    如果参数bitlist中的某个以逗号分隔的单元不是合法的表示数字的字符串时,设置位时会忽略该单元继续搜索下面的单元

 

【举例】:

表达式 返回值 说明
SetBit(221324,"1,2,ww",1) 221327 忽略单元"ww"
SetBit(221324,"1,1,1",1) 221325  
SetBit(221324,"1,2,0",1) 221327 忽略单元"0"
SetBit(221324,"1,65,2",1) 221327 忽略单元"65"后继续搜索下一个要设置的位

 

三、          算术运算

31   Abs

【函数名】:Abs

【函数形式】:dfloatAbs(int32 ln_number)

【功能】:返回一个整数的绝对值,绝对值是一个非负数。

【参数】:

(1)   ln_number:

1)       类型:int32

【返回值】:

(1)   类型:dfloat

(2)   值域:非负数

【备注】

(1)    该函数的输入参数是整数.Fabs()函数可以返回一个浮点数的绝对值。

 

【举例】:

表达式 返回值 说明
Abs(-7) 7 返回值为dfloat类型
Abs(3294) 3294 返回值为dfloat类型
Abs(‘a’)   错误,不能转换字符串

 

32   Acos

【函数名】:Acos

【函数形式】:dfloatAcos(dfloat ln_number)

【功能】:返回一个数的反余弦函数值。

【参数】:

(1)   ln_number:

1)       类型:dfloat

2)       值域:[-1,1]

【返回值】:

(1)   类型:dfloat

(2)   值域:[0,∏]

【备注】

(1)    返回值是以弧度表示的角度值。

 

【举例】:

表达式 返回值 说明
Acos(1) 0 返回值为dfloat类型
Acos(.5) 1.0471975511966 返回值为dfloat类型
Acos(2)   错误,输入参数超出范围

 

33   Asin

【函数名】:Asin

【函数形式】:dfloatAsin (dfloat ln_number)

【功能】:返回一个数的反正弦函数值。

【参数】:

(1)   ln_number:

1) 类型:dfloat

2) 值域:[-1,1]

【返回值】:

(1)   类型:dfloat

(2)   值域:[-∏/2, ∏/2]

【备注】

(1)   返回值是以弧度表示的角度值.

 

【举例】:

表达式 返回值 说明
Asin (1) 1.5707963267949 返回值为dfloat类型
Asin (.5) 0.523598775598299 返回值为dfloat类型
Asin (3)   错误,输入参数超出范围

 

34   Atan

【函数名】:Atan

【函数形式】:dfloatAtan (dfloat ln_number)

【功能】:返回一个数的反正切函数值。

【参数】:

(1)   ln_number:

1)       类型:dfloat

2)       值域:(-∞,+∞)

【返回值】:

(1)   类型:dfloat

(2)   值域:[-∏/2, ∏/2]

【备注】

(1)   返回值是以弧度表示的角度值.

 

【举例】:

表达式 返回值 说明
Atan (1) 0.785398163397448 返回值为dfloat类型
Atan (-10000) -1.57069632679523 返回值为dfloat类型
Atan (‘a’)   错误,无效数字

 

35   Ceil

【函数名】:Ceil

【函数形式】:int32 Ceil(decimal ln_number)

【功能】:返回一个大于等于一个数的最小整数。这与其它语言的ROUNDUP函数类似。

【参数】:

(1)   ln_number:

(2)   类型:decimal

【返回值】:

(1)   类型:int32

【备注】

 

【举例】:

表达式 返回值 说明
Ceil (1.1) 2 返回值为int32类型
Ceil (-2.7) -2 返回值为int32类型
Ceil (3) 3 返回值为int32类型
Ceil (‘a’)   错误,无效数字

 

36   Cos

【函数名】:Cos

【函数形式】:dfloat Cos(dfloat ln_number)

【功能】:返回一个数的余弦值。输入参数是用弧度表示的角度。1弧度=57.29578度(180/∏).如果角度是用度表示的,可以调用COS(angle/57.29578)函数,将角度转换为弧度。该函数用于工程、物理和其他科学领域。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

(2)   值域:[-1,1]

【备注】

 

【举例】:

表达式 返回值 说明
Cos(-1) 0.54030230586814 返回值为dfloat类型
Cos (0.3) 0.955336489125606 返回值为dfloat类型
Cos (‘a’)   错误,无效数字

 

37   Cosh

【函数名】:Cosh

【函数形式】:dfloat Cosh(dfloat ln_number)

【功能】:返回一个数的双曲余弦函数值。双曲余弦函数与余弦函数的联系为

COSH(n)= COS(i*n)

其中i为-1的平方根。

双曲余弦函数用于工程和科学领域。

 

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

 

【举例】:

表达式 返回值 说明
Cosh(-1) 1.54308063481524 返回值为dfloat类型
Cosh (.3) 1.04533851412886 返回值为dfloat类型
Cosh (‘a’)   错误,无效数字

 

38   Div

【函数名】:Div

【函数形式】:dfloat Div(dfloat ln_dividend, dfloat lv_divisor)

【功能】:返回两个实数相除所得结果的实部,即结果的实数部分。

【参数】:

(1)   ln_dividend:

1)       类型:dfloat

2)       说明:此为被除数

(2)   lv_divisor:

1)       类型:dfloat

2)       说明:此为除数

【返回值】:

(1)   类型:dfloat

【备注】

 

【举例】:

表达式 返回值 说明
Div(9,3) 3 返回值为dfloat类型
Div (4+i,3-i) 1.1 返回值为dfloat类型
Div (‘a’,3)   错误,无效数字

 

39   Exp

【函数名】:Exp

【函数形式】:dfloat Exp(dfloat ln_number)

【功能】:返回一个数的e次方。e=2.7182818…..

【参数】:

(1)   ln_number:

1)       类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

 

【举例】:

表达式 返回值 说明
Exp (1) 2.71828182845905 返回值为dfloat类型
Exp (3) 20.0855369231877 返回值为dfloat类型
Exp (‘a’)   错误,无效数字

 

40   Fabs

【函数名】:Fabs

【函数形式】:dfloatFabs (dfloat ln_number)

【功能】:返回一个浮点数的绝对值。绝对值为非负数。

【参数】:

(1)   ln_number:

1)       类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)    Fabs()与Abs()的区别在于:Abs()的输入参数为int32,而Fabs()的输入参数为dfloat.

 

【举例】:

表达式 返回值 说明
Fabs (-7.2) 7.2 返回值为dfloat类型
Fabs (32.94) 32.94 返回值为dfloat类型
Fabs (‘a’)   错误,不能转换字符串

 

41   Floor

【函数名】:Floor

【函数形式】:int32Floor (decimal ln_number)

【功能】:FLOOR 函数的功能是返回小于或等于提供值的所有整数中最大的一个。

【参数】:

ln_number:

类型:decimal

【返回值】:

(1)   类型:int32

【备注】

(1)   ln_number的值不能为字符类型。

 

【举例】:

表达式 返回值 说明
Floor (1.3) 2 返回值为int32类型
Floor (-3.7) -4 返回值为int32类型
Floor (‘a’)   错误,无效数字

 

42   Ldexp

【函数名】:Ldexp

【函数形式】:dfloatLdexp (dfloat ln_number1, int32 lv_ number2)

【功能】:Ldexp函数的功能是根据参数ln_number1和ln_number2来返回一个计算值。

【参数】:

(1)   ln_ number1:

(2)   类型:dfloat

(3)   lv_ number2:

(4)   类型:int32

【返回值】:

(1)   类型:dfloat

【备注】

(1)   Ldexp函数的具体返回的计算值是ln_number1与2的lv_ number2次幂的乘积。

(2)   ln_number1的参数可以为0,返回的值也为0,但ln_number1的参数不能为负值。

 

【举例】:

表达式 返回值 说明
Ldexp (2,3) 16 返回值为dfloat类型
Ldexp (2,-3) 0.25 返回值为dfloat类型
Ldexp (-2,-3)   错误,参数超出范围

 

43   Llabs

【函数名】:Llabs

【函数形式】:unit32Llabs (unit32 ln_number)

【功能】:Llabs 或absolute 函数返回参数的绝对值,但Llabs函数返回的是数值绝对值的整数部分。

【参数】:

(1)   ln_number:

(2)   类型:unit32

【返回值】:

(1)   类型:unit32

【备注】

       对数值和字符同样适用。

【举例】:

表达式 返回值 说明
Llabs (7.2) 7 返回值为dfloat类型
Llabs (-1) 1 返回值为dfloat类型
Llabs (‘a’) 0 返回值为dfloat类型

 

44   Ln

【函数名】:Ln

【函数形式】:dfloat Ln(dfloat ln_number)

【功能】:LN 函数返回以e为底数的参数的自然对数,但数值必须大于0。其中e的值是2.71828.

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

 

【举例】:

表达式 返回值 说明
Ln (1) 0 返回值为dfloat类型
Ln (10) 2.30258509299405 返回值为dfloat类型
Ln (-10)   错误,参数超出范围

 

45   Log10

【函数名】:Log10

【函数形式】:dfloat Log10(dfloat ln_number)

【功能】:Log10函数的功能是返回以10为底数参数的对数,其中数值必须大于0。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

 

【举例】:

表达式 返回值 说明
Log10 (100) 2 返回值为dfloat类型
Log10 (1) 0 返回值为dfloat类型
Log10 (-10)   错误,参数超出范围

 

46   Max

【函数名】:Max

【函数形式】:int32 Max(int32 ln_number1, int32 lv_ number2)

【功能】:Max函数的功能是返回ln_number1和lv_ number2两个参数中最大的一个值。

【参数】:

(1)   ln_ number1:

(2)   类型:int32

(3)   lv_ number2:

(4)   类型:int32

【返回值】:

(1)   类型:int32

【备注】

       在对两个参数用Max函数进行比较时可以正常返回最大值,当用字符型同数字或字符之间的比较时,回返回异常数值0。

【举例】:

表达式 返回值 说明
Max (9,3) 9 返回值为int32类型
Max (-4,-3) -3 返回值为int32类型
Max (‘a’,3) 0 返回异常数值0
Max (‘a’,’b’) 0 返回异常数值0

 

47   Min

【函数名】:Min

【函数形式】:int32 Min(int32 ln_number1, int32 lv_ number2)

【功能】:Min函数的功能是返回ln_number1和lv_ number2两个参数中最小的一个。

【参数】:

(1)   ln_ number1:

(2)   类型:int32

(3)   lv_ number2:

(4)   类型:int32

【返回值】:

(1)   类型:int32

【备注】

   在对两个参数用Min函数进行比较时可以正常返回最小值,当用字符型同数字或字符之间的比较时,会返回异常数值0。

 

【举例】:

表达式 返回值 说明
Min (9,3) 3 返回值为int32类型
Min (-4,-3) -4 返回值为int32类型
Min (‘a’,3)  0 返回异常数值0
Max (‘a’,’b’) 0 返回异常数值0

 

48   Mod

【函数名】:Mod

【函数形式】:int32 Mod(int32 ln_number1, int32 lv_ number2)

【功能】:Mod 函数返回参数相除操作的余数,这个函数可以用来控制只处理到第n条记录的循环。

【参数】:

(1)   ln_ number1:

(2)   类型:int32

(3)   lv_ number2:

(4)   类型:int32

【返回值】:

(1)   类型:int32

【备注】

(1)   ln_number1作为被除数和lv_ number2作为除数,虽然在理论上lv_ number2不能为0,但在DATASTAGE里是可以的,返回的值是ln_number1;

(2)   当用Mod函数来处理字符和数值或字符和字符时,返回的是异常数值0。

 

【举例】:

表达式 返回值 说明
Mod (9,3) 0 返回值为int32类型
Mod (-4,-3) -1 返回值为int32类型
Mod (‘a’,3)  0 返回异常数值0
Mod (‘a’, ‘b’)  ‘a’ 返回异常数值0

 

49   Neg

【函数名】:Neg

【函数形式】:dfloatNeg (dfloat ln_number)

【功能】:Neg函数的功能是返回ln_number的相反值,即ln_numbe为负则返回正,ln_numbe

       为正则返回负。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)    Neg函数主要是用于对数字类型的参数进行处理,如果对字符型的参数进行处理会返回异常数值。

 

【举例】:

表达式 返回值 说明
Neg (-7) 7 返回值为dfloat类型
Neg (9.4) -9.4 返回值为dfloat类型
Neg (0) 0 返回值为dfloat类型
Neg (‘a’)) -0 返回异常数值-0

 

50   Pwr

【函数名】:Pwr

【函数形式】:dfloat Pwr(dfloat ln_number1, dfloat lv_ number2)

【功能】:Pwr返回以ln_number1为底lv_ number2为幂的值。

【参数】:

(1)   ln_ number1:

(2)   类型:dfloat

(3)   lv_ number2:

(4)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)   lv_ number2可以为小数。

(2)   如果参数ln_number1lv_ number2都为负时,STAGE会报错

(3)   如果Pwr对字符型参数进行处理时会返回异常数值0。

 

【举例】:

表达式 返回值 说明
Pwr (2,3) 8 返回值为dfloat类型
Pwr (-2,-4) 0.0625 返回值为dfloat类型
Pwr (‘a’,3)   0 返回异常数值0

51   Rand

【函数名】:Rand

【函数形式】:uint32 Rand

【功能】:返回一个在0 和 232-1之间的伪随机数字 。

【参数】:

【返回值】:

(1)   类型:uint32

【备注】

【举例】:

表达式 返回值 说明
Random 16838 返回值为dfloat类型

 

52   Random

【函数名】:Random

【函数形式】:uint32 Random

【功能】:返回一个在0 和 232-1之间的随机数字。

【参数】:

【返回值】:

(1)   类型:uint32

【备注】

       无

 

【举例】:

表达式 返回值 说明
Random 8733235 返回值为dfloat类型
Random 178920 返回值为dfloat类型

 

53   Sin

【函数名】:Sin

【函数形式】:dfloat Sin(dfloat ln_number)

【功能】:SIN 函数用来进行角度计算和在物理、工程和很多的科学领域。角度必须以弧度的形式进行赋值。1弧度是57.29578度(180/pi),如果用SIN函数则返回正弦值。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)   在计算时需要将度转换成弧度,即ln_number =角度/57.29578。

 

【举例】:

表达式 返回值 说明
Sin (1) 0.841470984807897 返回值为dfloat类型
sin(30/57.29578) 0.49999999614644 返回值为dfloat类型
Sin ('a')  0 返回异常数值0

 

54   Sinh

【函数名】:Sinh

【函数形式】:dfloat Sinh(dfloat ln_number)

【功能】:SINH函数(双曲正弦函数)和正弦函数SIN 有很多联系,其中包括虚数"i" ( -1的平方根),SIN函数和SINH函数之间的关系表示如下:

i*SINH(n) = SIN(i*n)

SINH函数主要用在工程和科学领域,SINH 函数输入的参数是数字型的SINH 返回双曲正弦函数值。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)   SINH函数在目前的实际项目中很少会被用到,其中虚数的表现形式为:z = a +bi。

 

【举例】:

表达式 返回值 说明
Sinh (1) 1.1752011936438 返回值为dfloat类型
Sinh(282) 1.47915573275597E122 返回值为dfloat类型
Sinh(283)   错误,数字溢出
Sinh(‘a’)  0 返回异常数值0

 

55   Sqrt

【函数名】:Sqrt

【函数形式】:dfloat Sqrt(dfloat ln_number)

【功能】:平方根SQRT 函数的功能是计算参数的平方根,参数ln_number 不能为负数。SQRT 函数返回一个“实际”值,返回值的自身乘积是输入的参数本身。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)   如果用SQRT 函数函数处理字符型参数时,会返回异常数值0。

 

【举例】:

表达式 返回值 说明
Sqrt (4) 2 返回值为dfloat类型
Sqrt (1024) 32 返回值为dfloat类型
Sqrt (-1)   错误,参数超出范围
Sqrt (‘a’)   返回异常数值0

 

56   Tan

【函数名】:Tan

【函数形式】:dfloat Tan(dfloatln_number)

【功能】: 三角正切函数TAN在物理、工程和其他很多领域用做三角计算。TAN函数的参数必须用弧度来表示。1弧度是57.29578度(180/pi),如果用TAN函数则返回正切值。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

(1)   在计算时需要将度转换成弧度,即ln_number =角度/57.29578。

(2)   当角度为90度时,即ln_number=90/57.29578,TAN函数会返回一个趋近无穷大的极大值。

(3)   当用TAN函数处理字符型参数时,会返回异常数值0。

 

【举例】:

表达式 返回值 说明
Tan (1) 1.5574077246549 返回值为dfloat类型
Tan(45/57.29578) 0.999999986650876 返回值为dfloat类型
Tan(90/57.29578) 7.49113e+07 返回一个极大值
Tan (‘a’)   返回异常数值0

 

57   Tanh

【函数名】:Tanh

【函数形式】:dfloat Tan(dfloatln_number)

【功能】: TANH(双曲线正切)函数, 正切函数SIN 有很多联系,其中包括虚数"i" ( -1的平方根),TAN函数和TANH函数之间的关系表示如下:

i* TANH (n) = TAN (i*n)

TANH函数主要用在工程和科学领域,TANH 函数输入的参数是数字型的TANH 返回双曲正切函数值。

【参数】:

(1)   ln_number:

(2)   类型:dfloat

【返回值】:

(1)   类型:dfloat

【备注】

 

【举例】:

表达式 返回值 说明
Tanh (1) 1.55741 返回值为dfloat类型
Tanh (‘a’) 0 返回异常数值0

 

四、          空值处理

58   IsNotNull

【函数名】:IsNotNull

【函数形式】:int8IsNotNull(inputcolumn)

【功能】:判断一个表达式的值是否不为空

【参数】:

(1)   inputcolumn

1)       类型:任何类型

2)       值域:任何类型的输入列

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  1,表达式值不为空

Ø  0,表达式值为空

【备注】

(1)   参数inputcolumn只能是输入数据的某列,否则Job不能编译通过

 

【举例】:

表达式 返回值 说明
IsNotNull(inputlink.ID) 1 ID是输入inputlink的一列,其值非空
IsNotNull(inputlink.VALUE) 0 VALUE是输入inputlink的一列,其值为空
IsNotNull(1)   错误,不能编译通过
IsNotNull(NullToZero(inputlink.VALUE))   错误,不能编译通过

 

59   IsNull

【函数名】:IsNull

【函数形式】:int8 IsNull(inputcolumn)

【功能】:判断一个表达式的值是否为空

【参数】:

(1)   inputcolumn

1)       类型:任何类型

2)       值域:任何类型的输入列

【返回值】:

(1)   类型:int8

(2)   值域:

Ø  1,表达式值为空

Ø  0,表达式值不为空

【备注】

(1)   参数inputcolumn只能是输入数据的某列,否则Job不能编译通过

 

【举例】:

表达式 返回值 说明
IsNull(inputlink.ID) 0 ID是输入inputlink的一列,其值非空
IsNull(inputlink.VALUE) 1 VALUE是输入inputlink的一列,其值为空
IsNull(1)   错误,不能编译通过
IsNull(NullToZero(inputlink.VALUE))   错误,不能编译通过

 

60   MakeNull

61   NullToEmpty

【函数名】:NullToEmpty

【函数形式】:varietyNullToEmpty(inputcolumn)

【功能】:如果参数inputcolumn的值不为空,返回inputcolumn的值;否则,返回一个空字符串

【参数】:

(1)   inputcolumn

1)       类型:任何类型

2)       值域:任何类型的输入列

【返回值】:

(1)   类型:任何类型

(2)   值域:

Ø  inputcolumn的值,当inputcolumn的值非空时

Ø  空字符串"",当inputcolumn的值为空时

【备注】

(1)    参数inputcolumn只能是输入数据的某列,否则Job不能编译通过

(2)    注意:在Oracle数据库中,空字符串""和空是等价的

(3)    空字符串的16进制值为0x0,因此被转换为数字时其值变成0

(4)    在使用函数NullToEmpty时,作为参数的输入列和作为接收返回值的输出列的数据类型必须能够进行转换,否则Job编译不能通过

【举例】:

表达式 返回值 说明
NullToEmpty(inputlink.ID) "" inputlink.ID值为空
NullToEmpty(inputlink.ID) 0 inputlink.ID值为空,且输出被转换为数值类型
NullToEmpty(20)   错误,不能编译通过
NullToEmpty("test")   错误,不能编译通过

 

62   NullToZero

【函数名】:NullToZero

【函数形式】:varietyNullToZero (inputcolumn)

【功能】:如果参数inputcolumn的值不为空,返回inputcolumn的值;否则,返回0

【参数】:

(1)   inputcolumn

1)       类型:任何类型

2)       值域:任何类型的输入列

【返回值】:

(1)   类型:任何类型

(2)   值域:

Ø  inputcolumn的值,当inputcolumn的值非空时

Ø  0,当inputcolumn的值为空时

【备注】

(1)    参数inputcolumn只能是输入数据的某列,否则Job不能编译通过

(2)    0在被转换为字符串时得到字符串"0"

(3)    在使用函数NullToEmpty时,作为参数的输入列和作为接收返回值的输出列的数据类型必须能够进行转换,否则Job编译不能通过

【举例】:

表达式 返回值 说明
NullToZero (inputlink.ID) 0 inputlink.ID值为空
NullToZero (inputlink.ID) inputlink.ID的值 inputlink.ID值不为空
NullToZero (20)   错误,不能编译通过
NullToZero ("test")   错误,不能编译通过

 

63   NullToValue

【函数名】:NullToValue

【函数形式】:varietyNullToValue (inputcolumn,variety value)

【功能】:如果参数inputcolumn的值不为空,返回inputcolumn的值;否则,返回value

【参数】:

(1)   inputcolumn

1)       类型:任何类型

2)       值域:任何类型的输入列

(2)   Value

1)       类型:任何类型

2)       值域:任何类型的值

【返回值】:

(1)   类型:任何类型

(2)   值域:

Ø  inputcolumn的值,当inputcolumn的值非空时

Ø  value,当inputcolumn的值为空时

【备注】

(1)    参数inputcolumn只能是输入数据的某列,否则Job不能编译通过

(2)    在使用函数NullToEmpty时,作为参数的输入列、参数value和作为接收返回值的输出列的数据类型必须能够进行转换,否则Job编译不能通过

【举例】:

表达式 返回值 说明
NullToValue (inputlink.ID,100) 100 inputlink.ID值为空
NullToValue (inputlink.ID,100) inputlink.ID的值 inputlink.ID值不为空
NullToValue (20,100)   错误,不能编译通过
NullToValue ("test",100)   错误,不能编译通过

 

64   SetNull

【函数名】:SetNull

【函数形式】:varietySetNull()

【功能】:返回一个空值

【参数】:

       无

【返回值】:

(1)   类型:任何类型

(2)   值域:

Ø  返回任何类型的空值

【备注】

(1)    该函数的返回值只能被直接赋值给输出列,不能与其他表达式进行任何运算

 

【举例】:

表达式 返回值 说明
SetNull() 空值  

 

 

五、          数字

65   MantissaFromDecimal

【函数名】:MantissaFromDecimal

【函数形式】:dfloat MantissaFromDecimal(decimalnumber)

【功能】:判断decimal类型的数字有无小数部分

【参数】:

(1)   number

1)       类型:decimal

2)       值域:decimal类型的数字

【返回值】:

(1)   类型:dfloat

(2)   值域:

Ø  0,当参数number没有小数部分时

Ø  -1,当参数number有小数部分时

【备注】

(1)    函数的参数也可以为double等浮点类型,但当参数有小数部分时,函数的返回值不可理解

 

【举例】:

表达式 返回值 说明
MantissaFromDecimal(v) 0 参数v为decimal类型,值为123
MantissaFromDecimal(v) -1 参数v为decimal类型,值为123.23
MantissaFromDecimal(v) -1 参数v为decimal类型,值为0.0001
MantissaFromDecimal(v) -5.89935e+08 参数v为double类型,值为123.8

 

66   MantissaFromDFloat

【函数名】:MantissaFromDFloat

【函数形式】:dfloatMantissaFromDFloat(dfloat number)

【功能】:返回参数number的某些小数部分

【参数】:

(1)   number

1)       类型:dfloat

2)       值域:dfloat类型的数字

【返回值】:

(1)   类型:dfloat

(2)   值域:

Ø  dfloat类型的数字

【备注】

(1)    函数的返回值都是整数

(2)    函数的参数也可以是decimal类型的数字

(3)    在计算返回值时,按照下面的算法进行:

1)       如果number没有小数位,返回0,算法结束;

2)       如果number的小数位小于等于6位,取其小数各位形成一个整数返回,算法结束;如果number有大于6位的小数,则取小数前6位的各个数形成一个整数赋值给变量temp,取其小数第7为赋值给变量i;

3)       如果temp不为零,且i>=5,将temp+1的值作为返回值,算法结束;如果算法temp不为零,且i<5,将temp的值作为返回值,算法结束;

4)       如果temp为零且number没有小数部分,返回0,算法结束;如果temp为零且number还有小数部分,number=number×10e7,跳转到步骤1)。

 

【举例】:

表达式 返回值 说明
MantissaFromDFloat(123) 0  
MantissaFromDFloat(0.123456712) 123457  
MantissaFromDFloat(0.0000001) 0  
MantissaFromDFloat(0.0000005) 0  
MantissaFromDFloat (0.0000015) 2  
MantissaFromDFloat(0.0000006123) 123  
MantissaFromDFloat(0.00000001) 1  

 

67   AsDouble

【函数名】:AsDouble

【函数形式】:dfloatAsDouble(number)

【功能】:将参数number转换为dfloat类型的数

【参数】:

(1)   number

类型:数值

值域:sfloat、dfloat、in8、int16、int32、int64以及decimal类型的数字

【返回值】:

(1)   类型:dfloat

(2)   值域:

Ø  dfloat类型的数字

【备注】

(1)    精度超过dfloat类型表示范围的数会被截断

 

【举例】:

表达式 返回值 说明
AsDouble(123) 123  
AsDouble(123.1234567) 123.1234567  
AsDouble(0.1234567891234567) 0.123456789123457 精度被截断

 

68   AsFloat

【函数名】:AsFloat

【函数形式】:sfloatAsFloat(number)

【功能】:将参数number转换为sfloat类型的数

【参数】:

(1)   number

1)       类型:数值

2)       值域:sfloat、dfloat、in8、int16、int32、int64以及decimal类型的数字

【返回值】:

(1)   类型:sfloat

(2)   值域:

Ø  sfloat类型的数字

【备注】

(1)    精度超过sfloat表示范围的数会被截断

 

【举例】:

表达式 返回值 说明
AsFloat(123) 123  
AsFloat(0.12345678) 0.12345678  
AsFloat(0.123456789) 0.12345679 精度被截断

 

69   AsInteger

【函数名】:AsInteger

【函数形式】:int64AsInteger(number)

【功能】:将参数number转换为int64类型的数

【参数】:

(1)   number

1)       类型:数值

2)       值域:sfloat、dfloat、in8、int16、int32、int64以及decimal类型的数字

【返回值】:

(1)   类型:int64

(2)   值域:

Ø  int64类型的数字

【备注】

(1)    超过int64表示范围的数,取其低64位作为返回值

(2)    当参数number有小数部分时,直接舍去

 

【举例】:

表达式 返回值 说明
AsInteger(123) 123  
AsInteger(0.12345) 0  
AsInteger(1e1000) 9.22337203685478E18 超过表示范围
AsInteger(0.9999) 0 小数部分直接舍去

 

六、          原始类型

70   RawLength

【函数名】:RawLength

【函数形式】:int32RawLength(str)

【功能】:返回一个字符串所占的字节数

【参数】:

(1)   str

1)       类型:字符串

2)       值域:任何字符串类型的值

【返回值】:

(1)   类型:int32

(2)   值域:

Ø  int32类型的数字

【备注】

(1)    返回值不是字符串中的字符数,而是字符串所占的字节数

(2)    直接以”string”的形式为函数提供参数,其类型默认为ustring,每个字符占2个字节

 

【举例】:

表达式 返回值 说明
RawLength(“test”) 8  
RawLength(“”) 0 空字符串长度为0
RawLength(“1”) 2  
RawLength(UStringToString(“test”)) 4 string类型的字符串一个字符占一个字节

 

 

七、          字符串

71   AlNum

【函数名】:AlNum

【函数形式】:AlNum (str)

【功能】:返回字符串str是否仅由数字和英文字母组成。如果仅由数字或英文字母组成,返回1,否则返回0。

【参数】:

str:

类型:String

【返回值】:

(1)   类型:int8

(2)   值域:0 或 1

【备注】

    无

【举例】:

表达式 返回值 说明
AlNum (“abc”) 1 仅由英文字母组成
AlNum (“123c”) 1 仅由英文字母和数字组成
AlNum (“-40 5”) 0 包含了负号和空格
AlNum (“Kity,你好”) 0 包含了符号和中文字符

72   Alpha

【函数名】:Alpha

【函数形式】:Alpha (str)

【功能】:返回字符串str是否仅由英文字母组成。如果是,返回1,否则返回0。

【参数】:

str:

类型:String

【返回值】:

(1)   类型:int8

(2)   值域:0 或 1

【备注】

a)                  如果参数str仅由数字或字母组成,返回1,否则返回0。

b)                 如果str为空值或空串,返回0。

 

【举例】:

表达式 返回值 说明
Alpha (“abc”) 1 仅由英文字母组成
Alpha (“123c”) 0 包含了数字
Alpha (“ab c”) 0 包含了空格
Alpha (“Kity,你好”) 0 包含了符号和中文字符

73   CompactWhiteSpace

【函数名】:CompactWhiteSpace

【函数形式】:CompactWhiteSpace (str)

【功能】:将字符串str中的连续一个或多个空格处理成一个空格(无论空格在str的开头、中间或结尾)。

【参数】:

str:

类型:String

【返回值】:

类型:String

【备注】

 

【举例】:

表达式 返回值 说明
CompactWhiteSpace (“ab   c”) “ab c”  
CompactWhiteSpace (“   123 c”) “ 123 c”  
CompactWhiteSpace (“  b  c  ”) “ b c ”  
CompactWhiteSpace (“中国1    2”) “中国1 2”  

74   Compare

【函数名】:Compare

【函数形式】:Compare (str1,str2[,str_LR])

【功能】:比较字符串(区分大小写)str1、str2的ASCII码大小,返回比较结果-1、0、1。若str_LR 值为”L”或”R”,默认值为”L”。

【参数】:

str1:

类型:String

Str2:

类型:String

str_LR(可选):

    类型:String

    值域:”L”,”R”

【返回值】:

类型:int8

值域:-1,0,1

【备注】

(1)      若str1 > str2,返回1;若str1 = str2,返回0;若str1 < str2,返回-1;

(2)      若str1、str2均为非空且非数字字符串,参数str_LR为”L”、”R”或不设,结果均相同;

(3)      若str1、str2均为数字字符串或两字符串中数字之前的字母相同,参数str_LR为”L”时,以字符方式比较str1、str2,参数str_LR为”R”时,以数字方式比较str1、str2。

(4)      若str1、str2存在空值或空串时,返回结果如下表:

str1 str2 str_LR=” L” str_LR=” R”
数字字符串 空值 1 1
空值 数字字符串 -1 -1
非数字字符串 空值 0 0
空值 非数字字符串 0 0
数字字符串 空串 1 0
空串 数字字符串 -1 0
非数字字符串 空串 1 0
空串 非数字字符串 -1 0

【举例】:

表达式 返回值 说明
Compare (99,100,"L") 1  
Compare ("98","109","R") -1  
Compare ("abc","ABC","R") 1  
Compare ("ABC","ABC","R") 0  
Compare ("ABC100","ABC99","L") -1  
Compare ("AB100","AB99","R") 1  

75   CompareNoCase

【函数名】:CompareNoCase

【函数形式】:CompareNoCase (str1,str2)

【功能】:比较字符串str1、str2的ASCII码大小,不区分大写小。若str1>str2,返回1,若str1=str2,返回0,若str1<str2,返回-1。

【参数】:

str1:

类型:String

Str2:

类型:String

【返回值】:

类型:int8

【备注】

【举例】:

表达式 返回值 说明
CompareNoCase (“23 43”,”1213”) 1  
CompareNoCase (“Abc”,” FSF”) -1  
CompareNoCase (“abc”,” FSF”) -1  
CompareNoCase (“中国”,”中央”) -1  
CompareNoCase (“cd”,”CD”) 0  

76   ComparNum

【函数名】:ComparNum

【函数形式】:ComparNum (str1,str2,n)

【功能】:比较字符串str1、str2中前n个字符组成的子字符串的大小,且区分大写小(小写字母的ASCII码大于大写字母)。若str1>str2时返回1,str1=str2时返回0,str1< str2时返回-1。

【参数】:

str1:

类型:String

Str2:

类型:String

n:

    类型:int16

【返回值】:

类型:int8

值域:-1,0,1

【备注】

    无

【举例】:

表达式 返回值 说明
Compare(“23 43abc”,”1213ab”,3) 1  
Compare(“Abcab”,” FSFab”,2) -1  
Compare(“abc”,” FSF”,1) 1  
Compare(“中国”,”中央”,1) 0  
Compare(“cd”,”cd”,2) 0  

77   CompareNumNoCase

【函数名】:CompareNumNoCase

【函数形式】:CompareNumNoCase (str1,str2,n)

【功能】:比较字符串str1、str2中前n个字符组成的子串的ASCII码大小,不区分大写小。若str1>str2,返回1,否则返回-1。

【参数】:

str1:

类型:String

str2:

类型:String

n:

类型:int16

【返回值】:

类型:int8

【备注】

【举例】:

表达式 返回值 说明
CompareNumNoCase (“23 43”,”1213”,2) 1  
CompareNumNoCase (“Abc”,” FSF”,3) -1  
CompareNumNoCase (“abc”,” FSF”,1) -1  
CompareNumNoCase (“中国”,”中央”,2) -1  
CompareNumNoCase (“cd”,”CD”,2) 0  

78   Convert

【函数名】:Convert

【函数形式】:Convert (substr1,substr2,mainstr)

【功能】: 若mainstr 中含有substr1的第n个字符,则将该字符转换为转换为substr2中对应的第n个字符(大小写敏感)。

【参数】:

substr1:

类型:String

substr2:

类型:String

mainstr:

类型:string

【返回值】:

类型:string

【备注】

(1)      若substr1为空值,返回mainstr;
若substr2为空值,mainstr中含有的substr1中的字符被删除(即被空值代替);
若mainstr为空值,返回空值。

(2)       substr1字符个数n1> substr2字符个数n2,substr1中第n2+1至第n1个字符将从mainstr中被删除;substr1字符个数n1< substr2字符个数n2,substr2中第n1+1至第n2个字符将被忽略。

【举例】:

表达式 返回值 说明
Convert("XY","IT","ADYLA   XAM$M YAFOy") ADTLA   IAM$M TAFOy X换成I,Y换成T
Convert("X","IT","ADYLA   XAM$M YAFOy") ADYLA   IAM$M YAFOy X换成I
Convert ("XY","I","ADYLY  XAM$M YAFOy") ADL  IAM$M AFOy X换成I,Y被删除

79   Count

【函数名】:Count

【函数形式】:Count (str, substr)

【功能】:返回substr在str中出现的次数。

【参数】:

str:

类型:String

substr:

类型:String

【返回值】:

类型:int 32

【备注】

(1)      str、substr可以是字符串或者变量或者常量;

(2)      如果substr是空值或空串,返回str含有的字符个数;

(3)      如果str是空值或空串,返回0。

(4)      从str的任意位置开始寻找substr都有效,如:例2返回的值是3而不是2

【举例】:

表达式 返回值 说明
Count("ABCAGHDALL", "A") 3  
Count ("TTTT", "TT") 3 主串中找到的3个子串分别是“TT”“TT”“TT”
Count("ABCAGHDALL", "") 10  

80   Dcount

【函数名】:Dcount

【函数形式】:Dcount (str, delimiter)

【功能】:返回str被delimiter分割的区域个数,即为str包含的delimiter个数+1。

【参数】:

str:

类型:String

substr:

类型:String

【返回值】:

类型:int 32

【备注】

(1)      如果str是空串,返回0;如果str是空值,返回空值。

(2)      如果delimiter是空值或空串,返回str含有的字符个数+1。

【举例】:

表达式 返回值 说明
DCount("ABCAGHDALL", "A") 4  
DCount("ABCAGHDALLA", "A") 5  
DCount("ttttt", "tt") 5 "ttttt"含有4个"tt",故返回5
Count("ABCAGHDALL", "") 11 "ABCAGHDALL"含有10个字符,故返回11

81   DownCase

【函数名】:DownCase

【函数形式】:DownCase (str)

【功能】:将str中的大写字母转换为小写字母。

【参数】:

str:

类型:String

【返回值】:

类型:String

【备注】

    无

【举例】:

表达式 返回值 说明
DownCase("ABC123abc") abc123abc  

82   DQuote

【函数名】:DQuote

【函数形式】:DQuote (str)

【功能】:将str加上双引号后返回,或将多个字符串连接后加上双引号再返回。

【参数】:

str:

类型:String

【返回值】:

类型:String

【备注】

    若要将多个字符串连接后加上双引号再返回,字符串之间用冒号连接,如例2。

【举例】:

表达式 返回值 说明
DQuote ("ABC123abc") "ABC123abc" 若不用该函数,返回ABC123abc
DQuote("12345" : "A":"cd") "12345Acd"  

83   Field

【函数名】:Field

【函数形式】:Field (str, delimiter, instance[ ,number])

【功能】:返回str中由分界字符串delimiter分割的子串,从第instance个子串开始,共返回子串个数为number,子串间的分界字符串delimiter也同时返回。

【参数】:

str:

类型:String

delimiter:

类型:String

instance:

类型:int 32

[number]:

类型:int 32

【返回值】:

类型:String

【备注】

(1)如果delimiter为空串,返回str;
如果delimiter为空值,则报错。

(2)如果str不包含任合delimiter且instance为1,返回str;
如果str不包含任合delimiter且instance不为1,则返回空串;

(3)如果instance<1,则instance取为1,2>instance>1,则instance取为2,以此类推。

【举例】:

表达式 返回值 说明
Field("###DHHH#KK","#", 2) 空  
Field("London+0171+NW2+AZ", "/", 1) London+0171+NW2+AZ  
Field("London+0171+NW2+AZ", "+", 2, 2) 0171+NW2  
Field("London+0171+NW2+AZ", "/", 2) 空  
Field("###DHHH#KK##","#", 5,2) KK#  
Field("London+0171+NW2+AZ", "/", 1.5) London+0171+NW2+AZ  

84   Index

【函数名】:Index

【函数形式】:Index (str, substr, instance)

【功能】:返回主串str中第instance个子串substr在主串中开始的位置。

【参数】:

str:

类型:String

substr:

类型:String

instance:

类型:int 32

【返回值】:

类型:int 32

【备注】

(1)如果主串str为空串或空值,返回0。

(2)如果子串substr为空串,返回1;
如果子串substr为空值,返回0;

(3)如果没有找到第instance个子串,返回0;如果instance为空值,报错。

【举例】:

表达式 返回值 说明
Index("P1234XXOO1299XX00P1",1,2) 10  
Index("P1234XXOO1299XX00P1","XX",3) 0  
Index("P1234XXOO1299XX00P1","xx",2) 0  
Index(StrVar,"XX",2) 0 StrVar是值为空的变量
Index("P1234XXOO1299XX00P1","",2) 1  

 

85   Left

【函数名】:Left

【函数形式】:Left (str, n)

【功能】:返回主串str中左边n个字符构成的子串。

【参数】:

str:

类型:String

n:

类型:int 32

【返回值】:

类型:String

【备注】

(1)如果主串str为空值,返回空值。

(2)如果n为空值,报错。

(3)如果主串str长度小于n,返回整个主串str.

【举例】:

表达式 返回值 说明
Left("ABCDEF", 3) ABC  
Left("AB", 3) AB  

 

86   Len

【函数名】:Len

【函数形式】:int32 Len (str1 String)

【功能】:获取某种字符集下字符串str1的字节长度。

【参数】:

str1:

类型:String

【返回值】:

类型:int32

【备注】

该函数的测试只在Client中进行了中文字符测试,没有使用UTF-8字符集测试

【举例】:

表达式 返回值 说明
len('我') 2 Client字符集为GBK
len('abc') 3  
len('1') 2 参数为全角”1”
len('我1') 3  
     

 

87   Num

【函数名】:Num

【函数形式】:int8 Num (str1 String)

【功能】:判断参数Str1能否转换为数字,如果能够转换则返回“1”。

【参数】:

str1:

类型:String

【返回值】:

类型:int8

【备注】

文档中没有说明如果不能转换为数字时的返回值,但是通过测试其返回值均为“0”。

【举例】:

表达式 返回值 说明
Num("我") 0  
Num('abc') 0  
Num('1') 0 参数为全角”1”
Num("1") 1  
Num("00123") 1  
Num("p123") 0  
Num("0123fd") 0  

 

88   PadString

【函数名】:PadString

【函数形式】:String PadString (str1 String,str2 padCharacter,padCountint32)

【功能】:在str1的末尾添加padCountpadCharacter,返回添加后的结果

【参数】:

str1:

类型:String,原始字符串

padStr:

类型:String,待添加的ASCII字符,如果输入的是字符串,则只取第一个字节的内容

padLength:

类型:int32,添加的个数

 

【返回值】:

类型:String

【备注】

1:虽然第二个参数是String类型的,但是只会取第一个ASCII字符,如果第一个字符非单字节字符,则只会取该字符的第一个字节,如全角数字的,其字节为“A3B1“因为其为两个字节,故只取的第一个字节”A3”,pad两个后的结果为一个全角字符一个

2:如果第二个参数为非单字节字符,根据上面1的描述,只会取第一个字节,但是因为第一个字节不是ASCII字符,故如果pad奇数次后,其末尾会产生奇数个非ASCII的字节数据,转换成双字节字符(GBK)时可能会报错(如下面第六个举例)UTF-8(汉字三字节)环境与此类似。

【举例】:

表达式 返回值 说明
PadString("我","1",2) 我11  
PadString("12","w",6) 12wwwwww  
PadString("12","我",8) 12挝挝挝挝  
PadString("12",'b1',5) 12bbbbb  
PadString("12","1",8) 12####  
PadString("12","我",7) CharsetConverter报错  

 

89   Right

【函数名】:Right

【函数形式】:String Right (str1 String,index int32)

【功能】:从右边开始,返回第indexASCII字符(index个字节内容)

【参数】:

str1:

类型:String,原始字符串

index:

类型:int32,从右边开始数第几个(下标从1开始)

【返回值】:

类型:String

【备注】

1:如果第index字节不能转换为ASCII字符 ,如Right(“”,2),会报异常

2:如果字符串str1的长度小于index,则返回首字节对应的字符

【举例】:

表达式 返回值 说明
Right("123",1) 3  
Right("123",0)    
Right("123",3) 1  
Right("123",4) 1  
Right("123",2) 2  
Right("我",2) CharsetConverter报错  

 

90   Soundex

【函数名】:Soundex

【函数形式】:String Soundex (str1 String)

【功能】:返回str1对应的发音标志(相同发音标志的单词读音相同,如“SMITH“和”Smyth “,他们都对应” S530”)

【参数】:

str1:

类型:String,原始字符串

【返回值】:

类型:String

【备注】

【举例】:

表达式 返回值 说明
Soundex("SMITH")      S530  
Soundex("a")        A000  
Soundex('Smyth') S530  
Soundex('1') 1000  

 

91   Space

【函数名】:Space

【函数形式】:String Space (length int32)

【功能】:返回由length个空格组成的字符串

【参数】:

length:

类型:int32,空格数量

【返回值】:

类型:String

【备注】

length<=0返回空字符串

【举例】:

表达式 返回值 说明
Space(0) “”  
Space(1) “ ”  
Space(2) “  ”  
Space(-2) “”  

 

92   Squote

【函数名】:Squote

【函数形式】:String Squote (str1 String)

【功能】:将原始输入字符串用单引号括起来

【参数】:

str1:

类型:String,待操作的字符串

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明
Squote("fdfdfd") ‘fdfdfd’ 返回内容包含单引号
Squote("") ‘’

 

93   Str

【函数名】:Str

【函数形式】:String Str (str1 String , repeatCount int32)

【功能】:返回某个字符串反复repeatCount的结果,如果repeatCount小于或等于0将返回空字符串

【参数】:

str1:

类型:String,待反复的字符串

repeatCount:

类型:int32,反复次数

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明
Str("abc",2) “abcabc” 不包括引号
Str("abc",1) “abc”
Str("",2) “”
Str("abc",0) “”
Str("abc",-2) “”

 

94   StripWhiteSpace

【函数名】:StripWhiteSpace

【函数形式】:String StripWhiteSpace (str1 String)

【功能】:去掉字符串中的所有位置上的空格。

【参数】:

str1:

类型:String

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明
StripWhiteSpace("  fdfd  fdsfd  ") “fdfdfdsfd” 不包括引号
StripWhiteSpace("") “”
StripWhiteSpace("   ") “”

 

95   Trim

【函数名】:Trim

【函数形式】:String Trim(str1 String,[stripchar String],[optionString])

【功能】:去掉字符串中指定位置的指定字符(如果是多字节字符,取第一个字节)。后两个参数为可选参数,如果不设置这两个参数,则去掉字符串中前后的空格和Tab

【参数】:

str1:

类型:String 待操作的字符串

stripchar:

类型:String,需要去掉的字符,如果输入的是字符串,取第一个字节对应的字符

option:

类型:String,设置操作的位置,详细意义见下:

 L 删除字符串前面的指定字符;

 T 删除字符串后面的指定字符;

 B 删除字符串前面和后面的指定字符;

 R 删除字符串前后的指定字符,在字符串中间连续出现指定字符的,使用单一字符代替;

 A 删除字符串中任何位置上的指定字符串;

 F 删除字符串前面的空格和Tab

 E 删除字符串后面的空格和Tab

 D 删除字符串前后的空格或Tab,在字符串中间连续出现空格或Tab的,使用一个空格或Tab代替;

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明
Trim("   fd  fdfsd ffffff df  ") “fd fdfsd ffffff df” 不包括引号
trim("ddddddd   fd  ffffff ddddd     ","d","L") “   fd  ffffff ddddd    ”
trim("fsfsfsasf f","fs","L") “sfsfsasf f”
trim("我我我111我我","我","L") “椅椅?11我我” 因为”我”是”CED2”,”椅”是”D2CE”

 

96   TrimB

【函数名】:TrimB

【函数形式】:String TrimB (str1 String)

【功能】:去掉字符串中后面的空格和Tab

【参数】:

str1:

类型:String

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明

 

97   TrimF

【函数名】:TrimF

【函数形式】:String TrimF (str1 String)

【功能】:去掉字符串中前面的空格和Tab

【参数】:

str1:

类型:String

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明

 

 

98   TrimLeadingTrailing

【函数名】:TrimLeadingTrailing

【函数形式】:String TrimLeadingTrailing (str1 String)

【功能】:去掉字符串中前后的空格

【参数】:

str1:

类型:String

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明

 

99   Upcase

【函数名】:Upcase

【函数形式】:String Upcase (str1 String)

【功能】:将字符串中的全部小写字符转换为大写字符

【参数】:

str1:

类型:String

【返回值】:

类型:String

【备注】

      

【举例】:

表达式 返回值 说明
Upcase("fdfdfd我dfdsfAAASDdfdsf") “FDFDFD我DFDSFAAASDDFDSF“ 不包括引号

 

八、          向量

100  ElementAt

【函数名】:ElementAt

【函数形式】:varietyElementAt(vector v,int pos)

【功能】:返回向量v中的位置为pos的元素

【参数】:

(1)   v

1)       类型:vector

2)       值域:任意向量

(2)   pos

1)       类型:整型

2)       值域:大于等于0的整数

【返回值】:

(1)   类型:任何类型

(2)   值域:

Ø  任何类型的值

【备注】

(1)    向量的位置是从0开始的

(2)    参数pos不能超过向量的边界,否则Job会失败

 

【举例】:

假设向量V为{“v1”,”v2”,”v3”,”v4”,”v5”}

表达式 返回值 说明
ElementAt(V,0) “v1”  
ElementAt(V,4) “v5”  
ElementAt(V,-1)   位置超界,Job失败
ElementAt(V,5)   位置超界,Job失败

 

 

九、          类型转换

101  DateToString

【函数名】:DateToString

【函数形式】:DateToString (Date t1 [format (string) t2])

【功能】:返回日期的字符类型表达形式

【参数】:

t1:

类型:Date

t2:

类型:日期转换为字符的形式默认为 %yyyy-%mm-%dd

【返回值】:

类型:字符类型

值域:

【备注】

参数t2标识日期转换为字符的形式,该参数可选,

对于日期:

%dd 两位日

%mm 两位月

%yy 两位年 (自1900)

%year_cutoffyy自year_cutoff的两位年(e.g. %2000yy)

%yyyy 四位年

%ddd一年的三位日

对于时间:

%hh 两位时

%nn 两位分

%ss  两位秒

 

默认为%yyyy-%mm-%dd

 

【举例】:

表达式 返回值 说明
DateToString(“2000-01-02”) 2000-01-02  
DateToString(“2000-01-02”, “%yyyy”) 2000  

 

102  DecimalToDecimal

【函数名】:DecimalToDecimal

【函数形式】:DecimalToDecimal (decimal (decimal) t1 [rtype(string) t2])

【功能】:返回十进制数的指定精度和范围十进制表达形式

【参数】:

t1:

类型:十进制数

t2:

类型:字符十进制截取的形式 如ceil. 正无穷大方向截取. E.g,1.4 -> 2, -1.6 -> -1默认为 trunc_zero

【返回值】:

类型:十进制数

值域:

【备注】

返回十进制数的精度和范围由目标字段决定,

参数t2十进制截取的形式,该参数可选:

ceil. 正无穷大方向截取. E.g, 1.4 -> 2, -1.6 -> -1.

floor. 负无穷大方向截取. E.g, 1.6 -> 1, -1.4 -> -2.

round_inf. 已“四舍五入”原则,取最接近的数 E.g, 1.4 -> 1, 1.5 -> 2,-1.4 -> -1, -1.5 -> -2.

trunc_zero. 根据目标值的精度范围舍弃多余小数位. E.g, 1.6 -> 1, -1.6 -> -1.

 

默认为trunc_zero

 

【举例】:

表达式 返回值 说明
DecimalToDecimal(10.45) 10 目标字段Int类型
DecimalToDecimal(10.55, "round_inf") 11 目标字段Int类型

 

103  DecimalToDFloat

【函数名】:DecimalToDFloat

【函数形式】:DecimalToDFloat (number (decimal) t1 [“fix_zero”])

【功能】:返回十进制数的DFloat类型表达形式

【参数】:

t1:

类型:十进制数

“fix_zero”:

类型:字符,可选,默认情况下,全部由0组成的十进制数为非法数据,指定“fix_zero”时,由0组成的十进制合法

【返回值】:

类型:DFloat类型

值域:

【备注】

 

【举例】:

表达式 返回值 说明
DecimalToDFloat(10.110) 10.11  

 

104  DecimalToString

【函数名】:DecimalToString

【函数形式】:DecimalToString (number (decimal) t1 [“fix_zero”])

【功能】:返回十进制数的字符类型表达形式

【参数】:

t1:

类型:十进制数

“fix_zero”:

类型:字符,可选,默认情况下,全部由0组成的十进制数为非法数据,指定“fix_zero”时,由0组成的十进制合法

【返回值】:

类型:字符型

值域:

【备注】

 

【举例】:

表达式 返回值 说明
DecimalToString(10.110) 10.11 返回值类型为字符型

 

105  DfloatToDecimal

【函数名】:DFloatToDecimal

【函数形式】:DFloatToDecimal (number (DFloat) t1 [rtype (string) t2])

【功能】:返回DFloat类型的十进制数表达形式

【参数】:

t1:

类型:DFloat

t2:

类型:字符十进制截取的形式 如ceil. 正无穷大方向截取. E.g,1.4 -> 2, -1.6 -> -1默认为 trunc_zero

【返回值】:

类型:十进制数

值域:

【备注】

返回十进制数的精度和范围由目标字段决定,

参数t2十进制截取的形式,该参数可选:

ceil. 正无穷大方向截取. E.g, 1.4 -> 2, -1.6 -> -1.

floor. 负无穷大方向截取. E.g, 1.6 -> 1, -1.4 -> -2.

round_inf. 已“四舍五入”原则,取最接近的数 E.g, 1.4 -> 1, 1.5 -> 2,-1.4 -> -1, -1.5 -> -2.

trunc_zero. 根据目标值的精度范围舍弃多余小数位. E.g, 1.6 -> 1, -1.6 -> -1.

 

默认为trunc_zero

 

【举例】:

表达式 返回值 说明
DFloatToDecimal(10.110) 10 目标字段为整型
DFloatToDecimal(10.110) 10.11 目标字段为浮点型

 

106  DfloatToStringNoExp

【函数名】:DFloatToStringNoExp

【函数形式】:DFloatToStringNoExp (number (DFloat) t1 ,Scale(string) t2)

【功能】:按照指定精度,返回DFloat类型的无指数的字符型表达形式

【参数】:

t1:

类型:DFloat

t2:

类型:字符精度范围

【返回值】:

类型:字符类型

值域:

【备注】

 

【举例】:

表达式 返回值 说明
DFloatToStringNoExp(12.345, “1”) 1e+01  
DFloatToStringNoExp(12.345, “2”) 12  
DFloatToStringNoExp(12.345, “3”) 12.3  
DFloatToStringNoExp(12.345, “4”) 12.35 四舍五入

 

107  IsValid

【函数名】:IsValid

【声明】:int8IsValid(string type,string source)

【用途】:判断字符串source是否能被转换为字符串type描述的类型

【参数】:

1.        type:

1)       类型:字符串

2)       值域:

值 对应DataStage类型 对应ORACLE数据库类型 说明
"date" Date DATE 日期类型,只包含年、月、日
"time" Time(Microseconds) DATE 时间类型,只包含小时、分钟、秒(包含毫秒如果选择了Microseconds扩展)
"timestamp" Timestamp(Microseconds) DATE 时间戳类型,包含年、月、日、小时、分钟、秒(包含毫秒如果选择了Microseconds扩展)
"decimal" Decimal Numeric NUMBER 通用数值类型,包括整数和小数部分(最大精度可表示整数长度为255,小数长度为99)
"sfloat" Float Real NUMBER IEEE单精度浮点类型,32位
"dfloat" Double NUMBER IEEE双精度浮点类型,64位
"int8" TinyInt NUMBER(3,0) 有符号整数类型,8位,表示范围:[-128,127]
"uint8" TinyInt NUMBER(3,0) 无符号整数类型,8位,表示范围:[0,255]
"int16" SmallInt NUMBER(5,0) 有符号整数类型,16位, 表示范围:[-32768,32767]
"uint16" SmallInt NUMBER(5,0) 无符号整数类型,16位, 表示范围:[0,65535]
"int32" Integer NUMBER(10,0) 有符号整数类型,32位, 表示范围:[-2^31,2^31-1]
"uint32" Integer NUMBER(10,0) 无符号整数类型,32位, 表示范围:[0,2^32-1]
"int64" BigInt NUMBER(19,0) 有符号整数类型,64位, 表示范围:[-2^63,2^63-1]
"uint64" BigInt NUMBER(20,0) 无符号整数类型,64位, 表示范围:[0,2^64-1]
"raw" Binary Bit LongVarBinary VarBinary 不支持 二进制类型
"string" Unknown Char LongVarChar VarChar CHAR VARCHAR VARCHAR2 不带UNICODE扩展的字符串
"ustring" Unknown Char LongVarChar VarChar CHAR VARCHAR VARCHAR2 带UNICODE扩展的字符串

 

2.        source

1)       类型:字符串

2)       值域:任意字符串

【返回值】:

1.  类型:int8

2.  值域:

Ø 1(字符串source能够被转换为字符串type描述的类型)

Ø 0(字符串source不能够被转换为字符串type描述的类型)

【备注】

(1)      "yyyy-mm-dd hh:nn:ss"形式的字符串可以转换为"date"和"time"类型,但以" yyyy-mm-dd "和" hh:nn:ss "形式的字符串不能转换为"timestamp"类型。

(2)      带小数部分的字符串不能转化整数类型,表示整数的字符串可以转换为浮点类型。

(3)      对于表示数值的字符串,不能转化为其值超过了表示范围的数值类型(即使格式匹配)。

【举例】:

表达式 返回值 说明
IsValid("date","2007-12-24") 1 检验日期类型的转换
IsValid("date","2007-12-24 12:00:00") 1 Timestamp形式的字符串可以转化为"date"类型
IsValid("timestamp","2007-12-24 ") 0 date形式的字符串不可以转化为"date"类型
ISValid("int8","128") 0 超过表示范围
ISValid("uint8","128") 1 在表示范围内
ISValid("uint8","-128") 0 超过表示范围
ISValid("uint8","-128") 0 超过表示范围
ISValid("sfloat","204") 1 表示整数的字符串可以转换为浮点类型
ISValid("int32","204.34") 0 带小数部分的字符串不能转化为整数类型

108  StringToDate

【函数名】:StringToDate

【函数形式】:StringToDate (Date (String) t1 ,format (string) t2)

【功能】:根据特定的格式,由字符返回日期类型

【参数】:

t1:

类型:字符

t2:

类型:字符

【返回值】:

类型:Date

值域:

【备注】

       t2日期格式参数

对于日期:

%dd 两位日

%mm 两位月

%yy 两位年 (自1900)

%year_cutoffyy自year_cutoff的两位年(e.g. %2000yy)

%yyyy 四位年

%ddd一年的三位日

 

【举例】:

表达式 返回值 说明
StringToDate(“2000-01-01”, "%yyyy-%mm-%dd") 2000-01-01  
StringToDate("2000", "%yyyy") 2000-01-01  

 

109  StringToDecimal

【函数名】:StringToDecimal

【函数形式】:StringToDecimal (Date (String) t1 [rtype (string) t2])

【功能】:由字符返回十进制数类型

【参数】:

t1:

类型:字符

t2:

类型:字符,十进制截取的形式如ceil. 正无穷大方向截取. E.g, 1.4 -> 2, -1.6-> -1默认为 trunc_zero

 

【返回值】:

类型:十进制数

值域:

【备注】

返回十进制数的精度和范围由目标字段决定,

参数t2十进制截取的形式,该参数可选:

ceil. 正无穷大方向截取. E.g, 1.4 -> 2, -1.6 -> -1.

floor. 负无穷大方向截取. E.g, 1.6 -> 1, -1.4 -> -2.

round_inf. 已“四舍五入”原则,取最接近的数 E.g, 1.4 -> 1, 1.5 -> 2,-1.4 -> -1, -1.5 -> -2.

trunc_zero. 根据目标值的精度范围舍弃多余小数位. E.g, 1.6 -> 1, -1.6 -> -1.

 

默认为trunc_zero

 

【举例】:

表达式 返回值 说明
StringToDecimal(“12.31”) 12 目标字段Int类型
StringToDecimal(“12.31”) 12.31 目标字段float类型

 

110  StringToRaw

【函数名】:StringToRaw

【函数形式】:raw StringToRaw(str)

【功能】:返回一个字符串的原始表现形式

【参数】:

(1)   str

1)       类型:字符串

2)       值域:任何字符串类型的值

【返回值】:

(1)   类型:raw

(2)   值域:

Ø  任何raw类型的值

【备注】

(1)    直接以”string”的形式为函数提供参数,其类型默认为ustring,每个字符占2个字节

 

【举例】:

表达式 返回值 说明
StringToRaw(“test”) 0x00,0x74,0x00,0x65,0x00,0x73,0x00,0x74 返回值为16进制串的形式
StringToRaw(UstringToString(“test”)) 0x74, 0x65, 0x73, 0x74
StringToRaw(UstringToString(“TEST”)) 0x54,0x45,0x53,0x54
StringToRaw(“123”) 0x00,0x31,0x00,0x32,0x00,0x33

 

111  StringToTime

【函数名】:StringToTime

【函数形式】:timeStingToTime(string time_string,string format)

【功能】:返回字符串time描述的时间值

【参数】:

(1)   time_string

1)       类型:string

2)       值域:任何描述合法时间值的字符串

(2)   format(可选参数)

1)       类型:string

2)       值域:任何描述时间格式的字符串

【返回值】:

(1)   类型:time

(2)   值域:

Ø  “00:00:00”-“23:59:59”之间的合法时间值

【备注】

(1)    参数format是可选的,而且实际上在转换时,将time_string前2个字符转换为小时,第4、5个字符转换为分钟,第7、8个字符转换为秒,format基本没什么用

(2)    只要time_string的前2个字符能够转换为合法的小时值,第4、5个字符能够转换为合法的分钟值,第7、8个字符能够转换为合法的秒值,函数就能返回合法的时间值;否则不能返回合法的时间值

 

【举例】:

表达式 返回值 说明
StingToTime(“00:00:00”,”hh:nn:ss”) 00:00:00  
StingToTime(“00-00-00”) 00:00:00  
StingToTime(“00-00-00”,”weweq”) 00:00:00  
StingToTime(“12w00100”,”weweq”) 12:00:00  
StingToTime(“27:23:13”)   错误,非法的时间值
StringToTime(“test”)   错误,非法的时间值

 

 

112  StringToTimestamp

【函数名】:StringToTimestamp

【函数形式】:timestampStringToTimestamp(string ts_string,string format)

【功能】:返回字符串time描述的时间戳值

【参数】:

(1)   ts_string

1)       类型:string

2)       值域:任何描述合法时间戳值的字符串

(2)   format

1)       类型:string

2)       值域:任何描述时间戳格式的字符串

【返回值】:

(1)   类型:timestamp

(2)   值域:

Ø  “0001-01-01 00:00:00”-“9999-12-3123:59:59”之间合法的时间戳值

【备注】

(1)    参数format是可选的,而且实际上在转换时,将ts_string前4个字符转换为年,第6、7个字符转换为月,第9、10个字符转换为日,第12、13个字符转换为小时,第15、16个字符转换为分钟,第18、19个字符转换为秒,format基本没什么用

(2)    format描述的格式和ts_string的格式不同也能完成转换

(3)    format不能为非法的格式描述字符串,否则抛出参数解析错误,Job失败

 

【举例】:

表达式 返回值 说明
StringToTimestamp("2007w01w01w12w00w00") 2007-01-01 12:00:00  
StringToTimestamp("2000/01/01 12/12/12","%yyyy-%mm-%dd %hh:%nn:%ss") 2000-01-01 12:12:12  
StringToTimestamp("2000/01/01 12/12/12","test")   抛出参数解析错误,Job失败
StringToTimestamp(“test”)   错误,非法的时间戳值

 

113  TimestampToDate

【函数名】:TimestampToDate

【函数形式】:dateTimestampToDate(timestamp ts)

                      date TimestampToDate(string ts)

【功能】:将一个时间戳值转换为一个日期值

【参数】:

(1)   ts

1)       类型:timestamp或string

2)       值域:任何合法的时间戳值或其字符串表示

【返回值】:

(1)   类型:date

(2)   值域:

Ø  “0001-01-01”-“9999-12-31”之间的任何日期值

【备注】

       无

【举例】:

表达式 返回值 说明
TimestampToDate("2007-12-23 00:00:00") 2007-12-23  
TimestampToDate("test")   错误,非法的时间戳值
TimestampToDate("2007-12-93 00:00:00")   错误,非法的时间戳值
TimestampToDate("2007-12-23")   错误,非法的时间戳值

 

114  TimestampToString

【函数名】:TimestampToString

【函数形式】:stringTimestampToString(timestamp ts,string format)

                      string TimestampToString(string ts,stringformat)

【功能】:按照format指定的格式将一个时间戳值转换为其对应的字符串表示

【参数】:

(1)   ts

1)       类型:timestamp或string

2)       值域:”0001-01-01 00:00:00”-“9999-12-3123:59:59”之间的任何时间戳值或其字符串表示

(2)   format

1)       类型:string

2)       值域:合法的时间戳格式描述字符串

【返回值】:

(1)   类型:string

(2)   值域:

Ø  合法的时间戳值的字符串表示,正常

Ø  “*******************”,异常

【备注】

(1)    参数format必须为合法的时间戳格式描述字符串,否则会抛出参数解析异常,Job失败

(2)    没有指定format参数,则字符”-”是默认的日期分割符,字符”:”是默认的时间分割符

(3)    当参数ts不是合法时间戳值时,函数返回异常值

 

【举例】:

表达式 返回值 说明
TimestampToString("2007-01-01 23:00:00") "2007-01-01 23:00:00" 缺省的格式
TimestampToString("2007-01-01 23:00:00","yyyy/mm/dd hh/nn/ss") "2007/01/01 23/00/00" 指定的格式
TimestampToString("2007-31-01 23:00:00") “*******************” 异常
TimestampToString("2007-01-01 23:00:00","test")   参数解析异常,Job失败

 

115  TimestampToTime

【函数名】:TimestampToTime

【函数形式】:timeTimestampToTime (timestamp ts)

                      time TimestampToTime (string ts)

【功能】:将一个时间戳值转换为一个时间值

【参数】:

(1)   ts

1)       类型:timestamp或string

2)       值域:任何合法的时间戳值或其字符串表示

【返回值】:

(1)   类型:time

(2)   值域:

Ø  “00:00:00”-“23:59:59”之间的任何时间值

【备注】

       无

【举例】:

表达式 返回值 说明
TimestampToTime("2007-12-23 00:00:00") 00:00:00  
TimestampToTime("test")   错误,非法的时间戳值
TimestampToTime("2007-12-93 00:00:00")   错误,非法的时间戳值
TimestampToTime("2007-12-23")   错误,非法的时间戳值

 

116  TimeToString

【函数名】:TimeToString

【函数形式】:stringTimeToString(time ts,string format)

                      string TimeToString(string ts,string format)

【功能】:按照format指定的格式将一个时间值转换为其对应的字符串表示

【参数】:

(1)   ts

1)       类型:time或string

2)       值域:”00:00:00”-“23:59:59”之间的任何时间值或其字符串表示

(2)   format

1)       类型:string

2)       值域:合法的时间格式描述字符串

【返回值】:

(1)   类型:string

(2)   值域:

Ø  合法的时间值的字符串表示,正常

Ø  “”,异常

【备注】

(1)    参数format必须为合法的时间格式描述字符串,否则会抛出参数解析异常,Job失败

(2)    没有指定format参数,字符”:”是默认的时间分割符

(3)    当参数ts不是合法时间值时,函数返回异常值

 

【举例】:

表达式 返回值 说明
TimeToString("23:00:00") " 23:00:00" 缺省的格式
TimeToString("23:00:00"," hh/nn/ss") " 23/00/00" 指定的格式
TimestampToString("27:00:00") “” 异常
TimestampToString("23:00:00","test") “23s0” 异常,值不可理解

 

117  StringToUstring

【函数名】:StringToUstring

【函数形式】:ustringStringToUstring(string str,string map)

【功能】:根据map指定的字符集映射将一个string类型的字符串转换为一个ustring类型的字符串

【参数】:

(1)   str

1)       类型:string

2)       值域:string类型的字符串

(2)   map(可选参数)

1)       类型:string

2)       值域:表示字符集映射的字符串

【返回值】:

(1)   类型:ustring

(2)   值域:

Ø  ustring类型的字符串

【备注】

(1)    如果没有指定map参数,则使用工程默认的字符集映射

(2)    参数map必须是已经注册了的字符集映射名,否则会发生致命错误,Job失败

(3)    参数map大小写不敏感

 

【举例】:

表达式 返回值 说明
StringToUString("12") “12”(0x00,0x31,0x00,0x32)  
StringToUString("12",” ASCL_GB2312”) “12”(0x00,0x31,0x00,0x32)  
StringToUString(“我”,”UTF-8”) “我”(0x61,0x11)  
StringToUString(“我”, ” ASCL_GB2312”) 0xFF,0xFD,0x00,0x91  
StringToUString(“我”,”TEST”)   没有注册的字符集映射,Job失败

 

118  UstringToString

【函数名】:UstringToString

【函数形式】:string UstringToString(ustringstr,string map)

【功能】:根据map指定的字符集映射将一个ustring类型的字符串转换为一个string类型的字符串

【参数】:

(1)   str

1)       类型:ustring

2)       值域:ustring类型的字符串

(2)   map(可选参数)

1)       类型:string

2)       值域:表示字符集映射的字符串

【返回值】:

(1)   类型:string

(2)   值域:

Ø  string类型的字符串

【备注】

(1)    如果没有指定map参数,则使用工程默认的字符集映射

(2)    参数map必须是已经注册了的字符集映射名,否则会发生致命错误,Job失败

(3)    参数map大小写不敏感

 

【举例】:

表达式 返回值 说明
UstringToString("12") “12”(0x31,,0x32)  
UstringToString("12",” ASCL_GB2312”) “12”(0x31,0x32)  
UstringToString(“我”,”UTF-8”) “我”(0xE6,0x88,0x91)  
UstringToString(“我”, ” ASCL_GB2312”) 0xCE,0xD2  
UstringToString(“我”,”TEST”)   没有注册的字符集映射,Job失败

 

十、          工具

119  GetEnvironment

【函数名】:GetEnvironment

【函数形式】:stringGetEnvironment(string variable)

【功能】:返回variable指定的环境变量的值

【参数】:

(1)   variable

1)       类型:string

2)       值域:任意字符串

【返回值】:

(1)   类型:string

(2)   值域:

Ø  任意字符串

【备注】

(1)    当找不到名为variable的环境变量时,返回空字符串

 

【举例】:

表达式 返回值 说明
GetEnvironment("WHO") “WTEST” 获取工程名
GetEnvironment("LOGIN") “dsadm” 获取系统登录用户
GetEnvironment("start_date") “2007-01-01” 获取变量start_date
GetEnvironment("TEST") “” 没有找到名为”TEST”的变量

 

 

推荐 4
本文由 我是最优雅的杀手,不杀人专杀狗 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

谢谢分享

要回复文章请先登录注册