1. 程式人生 > >PB中的型別轉換

PB中的型別轉換

問:pb 中型別轉換函式是什麼?

答:例如以下函式是型別轉換函式:

Char()

功能將字串的第一個字元、Blob變數的第一個值、或一個整數轉換成字元。

語法Char ( n )

引數n:字串、Blob變數或整數,也可以是包含上述型別資料的Any型別變數返回值Char。返回引數n的第一個字元。如果n引數的值為NULL,則Char()函式返回NULL。

--------------------------------------------------------------------------------

Dec()

功能將字串或Blob值轉換成Decimal型別的值。

語法Dec ( stringorblob )

引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Decimal型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Decimal。函式執行成功時返回相應的Decimal型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Dec()函式返回0。如果stringorblob引數的值為NULL,則Dec()函式返回NULL。

--------------------------------------------------------------------------------

Double()

功能將字串或Blob值轉換成Double型別的值。

語法Double(stringorblob)

引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Double型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Double。函式執行成功時返回相應的Double型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Double()函式返回0。如果stringorblob引數的值為NULL,則Double()函式返回NULL。

--------------------------------------------------------------------------------

Integer()

功能將字串或Blob值轉換成Integer型別的值。

語法Integer ( stringorblob )

引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Integer型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Integer。函式執行成功時返回相應的Integer型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Integer()函式返回0。如果stringorblob引數的值為NULL,則Integer()函式返回NULL。

--------------------------------------------------------------------------------

Long()

功能將其它型別的資料轉換為Long型別的值。該函式有兩種語法格式:

語法一、將兩個無符號整數組合成一個長整數值;

語法二、將字串或Blob值轉換成Long型別的值。下面分別予以介紹:

語法一、將兩個無符號整數組合成一個長整數值

語法Long ( lowword, highword )

引數lowword:UnsignedInteger型別,指定長整數中的低位值,highword:UnsignedInteger型別,指定長整數中的高位值返回值Long。函式執行成功時返回由低位值和高位值組合後的長整數值,發生錯誤時返回-1。如果任何引數的值為NULL,則Long()函式返回NULL。

語法二、將字串或Blob值轉換成Long型別的值

語法Long ( stringorblob )

引數stringorblob:string型別變數或Blob型別變數。Blob型別變數時,把該變數第一個值轉換為Long型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Long。函式執行成功時返回相應的Long型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Long()函式返回0。如果stringorblob引數的值為NULL,則Long()函式返回NULL。

--------------------------------------------------------------------------------

Real()

功能將字串或Blob值轉換成Real型別的值。

語法Real ( stringorblob )

引數stringorblob:string型別變數或Blob型別變數。當該引數是Blob型別變數時,把該變數第一個值轉換為Real型別的值,其餘部分被忽略。stringorblob引數也可以是包含上述型別資料的Any型別變數返回值Real。函式執行成功時返回相應的Real型別值。如果stringorblob引數中的值不是有效的PowerScript數字或資料型別不相容,那麼Real()函式返回0。如果stringorblob引數的值為NULL,則Real()函式返回NULL。

--------------------------------------------------------------------------------

Date()功能將其它型別的資料轉換為Date型別的資料。該函式有三種語法格式:

語法一、將DateTime型別或第一個值是DateTime或Date的Blob值轉換成Date型別的值;

語法二、將其值是個有效日期的字串轉換成Date型別的值;

語法三、將三個整數組合成一個日期。下面分別予以介紹:

語法一、將DateTime型別或第一個值是DateTime或Date的Blob值轉換成Date型別的值

語法Date ( datetime )

引數datetime:DateTime型別的值或第一個值是DateTime或Date的Blob型別的值。當該引數是Blob型別變數時,把該變數第一個值轉換為Date型別的值,其餘部分被忽略。datetime引數也可以是包含上述型別資料的Any型別變數返回值Date。函式執行成功時返回相應的Date型別值。如果datetime引數中的值不是有效的PowerScript日期或資料型別不相容,那麼Date()函式返回1900-01-01。如果datetime引數的值為NULL,則Date()函式返回NULL。

語法二、將其值是個有效日期的字串轉換成Date型別的值

語法Date ( string )

引數string:string型別,其值包括一個有效的以字串形式表示的日期(比如January 1, 1998或12-31-99),string引數也可以是包含字串型別資料的Any型別變數返回值Date。函式執行成功時返回相應的Date型別值。如果string引數中的值不是有效的PowerScript日期或資料型別不相容,那麼Date()函式返回1900-01-01。如果string引數的值為NULL,則Date()函式返回NULL。

語法三、將三個表示年、月、日的整數組合成一個日期

語法Date ( year, month, day )

引數year:integer型別,指定日期中的年份,用四位數字表示,從0到9999month:integer型別,指定日期中的月份,用一位或兩位數字表示,從1到12day:integer型別,指定日期中的號數,用一位或兩位數字表示,從1到31返回值Date。函式執行成功時返回由year、month、day三個引數確定的日期。如果這三個引數中任何一個引數使用了無效值(比如月份指定為14),則Date()函式返回1900-01-01。如果任何引數的值為NULL,則Date()函式返回NULL。

--------------------------------------------------------------------------------

DateTime()

功能將其它型別的資料轉換為DateTime型別的資料。該函式有兩種語法格式:語法一、把日期和時間值組合成DateTime型別的值;語法二、將Blob型別的值轉換成DateTime型別的值。下面分別予以介紹:

語法一、把日期和時間值組合成DateTime型別的值

語法DateTime ( date {, time } )

引數date:Date型別的日期值time:可選引數,Time型別的時間值,省略該引數時,PowerBuilder把時間設定為午夜(00:00:00.000000)。當指定該引數時,可以僅僅指定小時值返回值DateTime。函式執行成功時返回日期和時間組合而成的DateTime型別的值。如果任何引數的值為NULL,則DateTime()函式返回NULL。

語法二、將Blob型別的值轉換成DateTime型別的值

語法DateTime ( blob )

引數blob:Blob型別變數,把該變數第一個值轉換為DateTime型別的值,其餘部分被忽略。blob引數也可以是包含blob型別資料的Any型別變數返回值DateTime。函式執行成功時返回相應的DateTime型別值。如果blob引數的值為NULL,則DateTime()函式返回NULL。

--------------------------------------------------------------------------------

String()

功能按指定格式將資料轉換成字串。String()可以把Date、DateTime、數值型別、Time、String型別的資料轉換成指定格式的字串。

語法String(data,{format})

引數data:指定要轉換格式的資料,其資料型別可以是Date、DateTime、數值型別、Time、String,也可以是包含上述型別資料的Any型別變數format:可選項,string型別,其值指定資料格式。如果data引數的型別為string,則必須指定format引數返回值String。函式執行成功時返回以字串方式表示的指定資料,如果data引數的資料型別與format引數指定的格式不匹配、format引數指定的格式無效、或data引數不是前面提到的適宜資料型別時,String()函式返回空字串("")。

用法:

format是個用掩碼錶示的字串,對data引數為數值型別的情況來說,格式為:正數格式;負數格式;零的顯示格式;空的顯示格式除第一部分必須提供外,其它部分可以省略。數值型顯示格式中使用兩個掩碼字元:#和0,其中,使用#代表0~9之間的任意數字,0代表每個零都要顯示。另外,貨幣符號($或¥)、百分號(%)、小數點(.)、逗號(,)等字元也可以出現在格式字串中,但是,除小數點(.)、逗號(,)能夠出現在格式字元#和0之間外,其它字元只能放置在格式串的前面或後面,例如,###,###$###是個錯誤的格式串,¥###,###,###是個正確的格式串。省略format引數時,String()函式使用PowerBuilder預設格式。注意,如果顯示格式有多個部分,各部分之間的分號(;)不能省略。其它字元也可以出現在顯示格式字串中(只能放在格式串的開頭和末尾),但它們沒有特殊意義,系統只是照原樣顯示。例如,用顯示格式字串“收入##”格式化數值12時,顯示結果為“收入12”。對data引數為字串(String)型別的情況來說,format引數的語法格式為:正常字串格式;空值時格式在“正常字串格式”中,@代表字串中的任意字元,除此之外的任何字元照原樣顯示,例如,如果定義了下面的格式:(@@)@@@@[email protected]@@@則字串0166767593顯示為:(01)6676-7593對data引數為日期(Date)型別的情況來說,format引數的語法格式為:正常日期格式;日期為空值時的格式日期格式中格式字元意義如下:d棗開頭不帶0的日數(如8)dd棗開頭帶0的日數(如08)ddd棗星期的英文縮寫(如Mon、Tue)dddd棗星期的英文全稱(如Monday、Tuesday)m棗開頭不帶0的月份(如8)mm棗開頭帶0的月份(如08)mmm棗月份的英文縮寫(如Jan、Feb)mmmm棗月份的英文全稱(如January、February)yy棗兩位數字表示的年份(如97)yyyy棗四位數字表示的年份(如1997)另外,還可以使用下面的關鍵字作為日期的顯示格式:[General] Windows系統中定義的短日期格式[LongDate] Windows系統中定義的長日期格式[ShortDate] Windows系統中定義的短日期格式對data引數為時間(Time)型別的情況來說,語法格式為:正常時間格式;時間為空值時的格式時間格式中格式字元意義如下:h開頭不帶0的小時(比如6)hh棗開頭帶0的小時(比如06)m棗開頭不帶0的分鐘(比如6)mm棗開頭帶0的分鐘(比如06)s棗開頭不帶0的秒(比如6)ss棗開頭帶0的秒(比如06)f棗開頭不帶0的微秒,可以指定1~6個f,每個f代表一部分微秒AM/PM棗用AM/PM顯示上、下午時間,12小時制am/pm棗用am/pm顯示上、下午時間,12小時制A/P棗用A/P顯示上、下午時間,12小時制a/p棗用a/p顯示上、下午時間,12小時制另外,顯示格式中還可以使用關鍵字[Time],它表示按當前Windows系統定義的格式顯示時間。對data引數為日期時間(DateTime)型別的情況來說,語法格式為:正常日期時間格式;日期時間為空值時的格式日期時間型別使用的掩碼就是把日期掩碼和時間掩碼結合起來即可。

--------------------------------------------------------------------------------

Time()

功能把其它型別的資料轉換為Time型別的值。該函式有三種語法格式:語法一、將DateTime型別或第一個值是DateTime或Time的Blob值轉換成Time型別的值;語法二、將其值是個有效時間的字串轉換成Time型別的值;語法三、將表示時、分、秒、以及微秒的整數組合成一個時間值。下面分別予以介紹:

語法一、將DateTime型別或第一個值是DateTime或Time的Blob值轉換成Time型別的值

語法Time ( datetime )

引數datetime:DateTime型別的值或第一個值是DateTime或Time的Blob型別的值。當該引數是Blob型別變數時,把該變數第一個值轉換為Time型別的值,其餘部分被忽略。datetime引數也可以是包含上述型別資料的Any型別變數返回值Time。函式執行成功時返回相應的Time型別值。如果datetime引數中的值不是有效的PowerScript時間或資料型別不相容,那麼Time()函式返回00:00:00.000000。如果datetime引數的值為NULL,則Time()函式返回NULL。

語法二、將其值是個有效時間的字串轉換成Time型別的值

語法Time ( string )

引數string:string型別,其值包括一個有效的以字串形式表示的時間(比如9am或10:25),string引數也可以是包含時間型別資料的Any型別變數返回值Time。函式執行成功時返回相應的Time型別值。如果string引數中的值不是有效的PowerScript時間或資料型別不相容,那麼Time()函式返回00:00:00.000000。如果string引數的值為NULL,則Time()函式返回NULL。

語法三、將表示時、分、秒、以及微秒的整數組合成一個時間值

語法Time ( hour, minute, second {, microsecond } )

引數hour:integer型別,指定時間中的小時,從0到23minute:integer型別,指定時間中的分鐘,從0到59second:integer型別,指定時間中的秒,從0到59microsecond:integer型別,可選項,指定時間中的微秒,從0到32767返回值Time。函式執行成功時返回由hour、minute、second、microsecond 四個引數確定的時間。如果這四個引數中任何一個引數使用了無效值(比如小時指定為44),則Time()函式返回NULL。

example:pb中怎麼將sring型別轉換成int型別

string str="10"

int ll_i

ll_i=integer(str)//把sring型別轉換成int型別