一個簡單函數(String函數)的複雜解釋

來源:互聯網
上載者:User

函數作用: 該函數有兩種用法,一種是進行類型轉換,見文法格式二;另一種是進行類型轉換的同時還進行資料格式的轉換,見文法格式一。重點是格式一的學習和理解。
函數文法: 格式一:String ( data, { format } )
  格式二:String ( Blob )
data:要進行類型和格式轉換的資料;可以是date、DateTime、數字類型、time或者string類型。
format:格式串,用來指定參數data的顯示格式。根據參數data的資料類型的不同而不同。當參數data為String類型時,該參數是必需的,否則就沒有必要使用該函數了。
返 回 值: String。函數執行成功時返回以字串方式表示的指定資料,如果data參數的資料類型與format參數指定的格式不匹配、format參數指定的格式無效、或data參數不是前面提到的適宜資料類型時,String()函數返回Null 字元串("")。
使用說明:format是個用掩碼錶示的字串,參數data的類型不同有不同的用法:
對data參數為數實值型別的情況來說,格式為:
正數格式;負數格式;零的顯示格式;
空的顯示格式除第一部分必須提供外,其它部分可以省略。數值型顯示格式中使用兩個掩碼字元:#和0,其中,使用#代表0~9之間的任一數字,0代表每個零都要顯示。另外,貨幣符號($或¥)、百分比符號(%)、小數點(.)、逗號(,)等字元也可以出現在格式字串中,但是,除小數點(.)、逗號(,)能夠出現在格式字元#和0之間外,其它字元只能放置在格式串的前面或後面,例如,###,###$###是個錯誤的格式串,¥###,###,###是個正確的格式串。省略format參數時,String()函數使用PowerBuilder預設格式。注意,如果顯示格式有多個部分,各部分之間的分號(;)不能省略。其它字元也可以出現在顯示格式字串中(只能放在格式串的開頭和末尾),但它們沒有特殊意義,系統只是照原樣顯示。例如,用顯示格式字串“收入##”格式化數值12時,顯示結果為“收入12”。
對data參數為字串(String)類型的情況來說,format參數的文法格式為:
正常字串格式;空值時格式
在“正常字串格式”中,@代表字串中的任一字元,除此之外的任何字元照原樣顯示,例如,如果定義了下面的格式:
   (@@)@@@@-@@@@
則字串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)類型的情況來說,文法格式為:
正常日期時間格式;日期時間為空白值時的格式
日期時間類型使用的掩碼就是把日期掩碼和時間掩碼結合起來即可。
代碼執行個體:
例1、下面的語句將指定日期轉換為: Jan 1,1998的格式:
string(1998-01-31,”mmmm dd,yyyy”)
例2、下面的語句把DateTime類型的值轉換為:Jan 1,1998 6 hrs and 8 min的字串:
string(DateTime(1998-01-31,06:08:00),’mmmm dd,yyyy h “hrs and” m ”min”’)
例3、下面的語句把string1設定為0123:
integer li_num = 123
string ls_temp

ls_temp = string(li_num,”0000;(000);****;空”)
例4、下面的語句把string1設定為123:
integer li_num = -123
string ls_temp

ls_temp = string(li_num,”000;(000);****;空”)
例5、下面的語句把string1設定為****:
integer li_num = 0
string ls_temp

ls_temp = string(li_num,”0000;(000);****;空”)
例6、下面的語句把string1設定為空白:
integer li_num
string ls_temp

SetNull(li_num)
ls_temp = string(li_num,”0000;(000);****;空”)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.