PB函数大全

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、数组函数
1、LowerBound()
功能:得到指定数组第n维的下界。

语法:LowerBound ( array {, n } )
参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的下界。

缺省值为1。

返回值:Long。

函数执行成功时返回array数组第n维的下界。

如果n的值超过了指定数组的最大维数,那么该函数返回-1。

如果任何参数的值为NULL,LowerBound()函数返回NULL。

示例:integer a[5], b[2,5]
LowerBound(a) // Returns 1
LowerBound(a, 1) // Returns 1
LowerBound(a, 2) // Returns -1, a has only 1 dim
LowerBound(b, 2) // Returns 1
integer c[ ]
LowerBound(c) // Returns 1
c[50] = 900
LowerBound(c) // Returns 1
integer d[-10 to 50]
LowerBound(d) // Returns - 10
2、UpperBound()
功能:得到指定数组第n维的上界。

语法:UpperBound( array {, n } )
参数:array:数组名。

n:数值类型,可选项,指定要得到数组哪一维的上界。

缺省值为1。

返回值:Long。

函数执行成功时返回array数组第n维的上界。

如果n的值超过了指定数组的最大维数,那么该函数返回-1。

如果任何参数的值为NULL,UpperBound()函数返回NULL。

示例:integer a[5], b[2,5]
LowerBound(a) // Returns 1
LowerBound(a, 1) // Returns 1
LowerBound(a, 2) // Returns -1, a has only 1 dim
LowerBound(b, 2) // Returns 1
integer c[ ]
LowerBound(c) // Returns 1
c[50] = 900
LowerBound(c) // Returns 1
integer d[-10 to 50]
LowerBound(d) // Returns - 10
二、Blob(大二进制对象)函数
Blob函数得到Blob数据类型的信息、完成数据类型转换以及操作Blob类型数据。

1、Blob()
功能:将字符串转换成Blob类型数据。

语法:Blob ( text )
参数:text: string类型,指定要转换的数据。

返回值:Blob。

函数执行成功时返回转换后的Blob类型数据;如果text参数的值为NULL,则Blob()函数返回NULL。

示例:Blob B
B = Blob(“北京”)
2、BlobEdit()
功能:将任意类型的数据插入到Blob类型变量的指定位置。

语法:BlobEdit ( blobvariable, n, data )
参数:blobvariable:Blob类型的已初始化变量,将向该变量中插入数据。

n:指定插入位置,有效值在1到4,294,967,295之间。

data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型。

返回值:Unsigned long。

函数执行成功时返回下次可以插入数据的位置;如果blobvariable 变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。

示例:下面的代码把一幅位图的数据复制到Blob类型变量emp_photo的起始位置,并把下次数据复制位置保存到变量nbr中,之后将当天的日期复制到emp_photo变量中位图数据的后面。

blob{1000} emp_photo
blob temp
date pic_date
ulong nbr
... // Read BMP file containing employee picture
... // into temp using FileOpen and FileRead.
pic_date = Today()
nbr = BlobEdit(emp_photo, 1, temp)
BlobEdit(emp_photo, nbr, pic_date)
UPDATEBLOB Employee
SET pic = :emp_photo
WHERE ...
3、BlobMid()
功能:从Blob变量中提取出一段数据。

提取之后,原Blob变量内容不变。

语法:BlobMid ( data, n {, length } )
参数:data:Blob类型的数据。

n:指定要提取数据的起始位置,有效值在1到4,294,967,295之间。

length:可选项,指定要提取数据的长度,以字节为单位,有效值在1到4,294,967,295之间。

缺省时提取从指定位置n到末尾的所有数据
返回值:Blob。

函数执行成功时返回指定字节数的数据。

如果n的值大于data的字节数,函数返回空。

如果n与length的和超过了data数据的字节数,那么BlobMid()函数返回剩下的数据,数据长度将小于参数length的值。

如果任何参数的值为NULL,则BlobMid()函数返回NULL。

示例:In this example, the first call to BlobMid stores 10 bytes of the blob datablob starting at position 5 in the blob data_1; the second call stores the bytes of datablob from position 5 to the end in data_2:
blob data_1, data_2, datablob
... // Read a blob datatype into datablob.
data_1 = BlobMid(datablob, 5, 10)
data_2 = BlobMid(datablob, 5)
This code copies a bitmap in the blob emp_photo starting at position 1, stores the position at which the next copy can begin in nbr, and then copies a date into the blob emp_photo after the bitmap data. Then, using the date's start position, it extracts the date from the blob and displays it in the StaticText st_1:
blob{1000} emp_photo
blob temp
date pic_date
ulong nbr
... // Read BMP file containing employee picture
... // into temp using FileOpen and FileRead.
pic_date = Today()
nbr = BlobEdit(emp_photo, 1, temp)
BlobEdit(emp_photo, nbr, pic_date)
st_1.Text = String(Date(BlobMid(emp_photo, nbr)))
4、Len()
功能:得到Blob类型变量的数据长度,以字节为单位。

语法:Len ( blob )
参数:blob:Blob类型变量。

返回值:Long。

函数执行成功时返回blob变量的长度,发生错误时返回-1。

如果任何参数的
值为NULL,则Len()函数返回NULL。

用法:如果在说明Blob类型的变量时指定了变量长度,那么对该变量来说,Len()函数得到的就是这个指定的长度。

如果在变量说明时未指定变量长度,那么PowerBuilder在赋值时调整长度,未赋值Blob类型变量的长度为0。

示例:This statement returns 0:
Len("")
These statements store in the variable s_address_len the length of the text in the SingleLineEdit sle_address:
long s_address_len
s_address_len = Len(sle_address.Text)
The following scenarios illustrate how the declaration of blobs affects their length, as reported by Len.
In the first example, an instance variable called ib_blob is declared but not initialized with a size. If you call Len before data is assigned to ib_blob, Len returns 0. After data is assigned, Len returns the blob's new length.
The declaration of the instance variable is:
blob ib_blob
The sample code is:
long ll_len
ll_len = Len(ib_blob) // ll_len set to 0
ib_blob = Blob( "Test String")
ll_len = Len(ib_blob) // ll_len set to 11
In the second example, ib_blob is initialized to the size 100 when it is declared. When you call Len for ib_blob, it always returns 100. This example uses BlobEdit, instead of Blob, to assign data to the blob because its size is already established. The declaration of the instance variable is:
blob{100} ib_blob
The sample code is:
long ll_len
ll_len = Len(ib_blob) // ll_len set to 100
BlobEdit(ib_blob, 1, "Test String")
ll_len = Len(ib_blob) // ll_len set to 100
5、String()
功能:将Blob类型变量的值转换成字符串类型。

如果Blob类型变量的值不是文本型数据,
String()函数将其值解释成字符。

语法:String ( blob )
参数:blob:要对其值进行类型转换的Blob类型变量。

返回值:String。

函数执行成功时返回转换后的数据,失败时返回空字符串("")。

如果blob 变量中包含的数据不是字符串类型的数据,那么String()函数尽可能把数据解释为字符,并返回字符串类型数据。

如果blob参数的值为NULL,则String()函数返回NULL。

示例:This example converts the blob instance variable ib_sblob, which contains string data, to a string and stores the result in sstr:
string sstr
sstr = String(ib_sblob)
This example stores today's date and test status information in the blob bb. Pos1 and pos2 store the beginning and end of the status text in the blob. Finally, BlobMid extracts a "sub-blob" that String converts to a string. Sle_status displays the returned status text:
blob{100} bb
long pos1, pos2
string test_status
date test_date
test_date = Today()
IF DayName(test_date) = "Wednesday" THEN test_status = "Coolant Test"
IF DayName(test_date) = "Thursday" THEN test_status = "Emissions Test"
// Store data in the blob
pos1 = BlobEdit( bb, 1, test_date)
pos2 = BlobEdit( bb, pos1, test_status )
... // Some processing
// Extract the status stored in bb and display it
sle_status.text = String( BlobMid(bb, pos1, pos2 - pos1))
三、数据类型检查和转换函数
1、Asc()
功能:得到字符串第一个字符的ASCII码整数值。

语法:Asc ( string )
参数:string:要得到第一个字符ASCII值的字符串。

返回值:Integer。

函数执行成功时返回string参数第一个字符的ASCII值,如果string
参数的值为NULL,则Asc()函数返回NULL。

示例:下面的语句返回66,即字母B的ASCII值。

Asc(B)
下面的代码检查字符串ls_name的第一个字母是否是大写字母。

IF Asc(ls_name) > 64 and Asc(ls_name) < 91 THEN …
2、Char()
功能:将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。

语法:Char ( n )
参数:n:字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量。

返回值:Char。

返回参数n的第一个字符。

如果n参数的值为NULL,则Char()函数返回NULL。

示例:下面的代码ls_S的值设置为星号(*),对应于ASCII值42。

String ls_S
ls_S = Char(42)
3、Dec()
功能:将字符串或Blob值转换成Decimal类型的值。

语法:Dec ( stringorblob )
参数:stringorblob:string类型变量或Blob类型变量。

Blob类型变量时,把该变量第一个值转换为
Decimal类型的值,其余部分被忽略。

stringorblob参数也可以是包含上述类型数据的Any 类型变量。

返回值:Decimal。

函数执行成功时返回相应的Decimal类型值。

如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Dec()函数返回0。

如果stringorblob参数的值为NULL,则Dec()函数返回NULL。

示例:Dec(“24.3”)
4、Double()
功能:将字符串或Blob值转换成Double类型的值。

语法:Double(stringorblob)
参数:stringorblob:string类型变量或Blob类型变量。

Blob类型变量时,把该变量第一个值转换为
Double类型的值,其余部分被忽略。

stringorblob参数也可以是包含上述类型数据的Any
类型变量。

返回值:Double。

函数执行成功时返回相应的Double类型值。

如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Double()函数返回0。

如果stringorblob参数的值为NULL,则Double()函数返回NULL。

示例:Double(“24.332”)
5、Integer()
功能:将字符串或Blob值转换成Integer类型的值。

语法:Integer ( stringorblob )
参数:stringorblob:string类型变量或Blob类型变量。

Blob类型变量时,把该变量第一个值转换为
Integer类型的值,其余部分被忽略。

stringorblob参数也可以是包含上述类型数据的Any 类型变量。

返回值:Integer。

函数执行成功时返回相应的Integer类型值。

如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Integer()函数返回0。

如果stringorblob参数的值为NULL,则Integer()函数返回NULL。

示例:下面的语句以Integer数据类型返回24。

Integer(“24.332”)
6、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。

示例:下面的语句以Long数据类型返回23458888。

Long(“23458888”)
7、Real()
功能:将字符串或Blob值转换成Real类型的值。

语法:Real ( stringorblob )
参数:stringorblob:string类型变量或Blob类型变量。

当该参数是Blob类型变量时,把该变量第一个值转换为Real类型的值,其余部分被忽略。

stringorblob参数也可以是包含上述类型数据的Any类型变量。

返回值:Real。

函数执行成功时返回相应的Real类型值。

如果stringorblob参数中的值不是有效的
PowerScript数字或数据类型不兼容,那么Real()函数返回0。

如果stringorblob参数的值为NULL,则Real()函数返回NULL。

示例:下面的语句以Long数据类型返回2323.3222。

Real(“2323.3222”)
8、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。

示例:下面的语句从DateTime类型变量ldt_StartDateTime中提取日期值并保存在
ld_StartDate变量中。

Date ld_StartDate
ld_StartDate = Date(ldt_StartDateTime)
语法二、将其值是个有效日期的字符串转换成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 ld_date
ld_date = Date(“2004-02-04”)
语法三、将三个表示年、月、日的整数组合成一个日期
语法:Date ( year, month, day )
参数:year:integer类型,指定日期中的年份,用四位数字表示,从0到9999;month:integer类型,指定日期中的月份,用一位或两位数字表示,从1到12;
day:integer类型,指定日期中的号数,用一位或两位数字表示,从1到31。

返回值:Date。

函数执行成功时返回由year、month、day三个参数确定的日期。

如果这三个参数中任何一个参数使用了无效值(比如月份指定为14),则Date()函数返回1900-01-01。

如果任何参数的值为NULL,则Date()函数返回NULL。

示例:下面的语句把变量ld_my_date设置为2004-02-04。

Date ld_my_date
ld_my_date = Date(“2004-02-04”)
9、DateTime()
功能:将其它类型的数据转换为DateTime类型的数据。

该函数有两种语法格式:语法一、把日期和时间值组合成DateTime类型的值;语法二、将Blob类型的值转换成DateTime类型的值。

下面分别予以介绍:
语法一、把日期和时间值组合成DateTime类型的值
语法:DateTime ( date {, time } )
参数:date:Date类型的日期值。

time:可选参数,Time类型的时间值,省略该参数时,PowerBuilder把时间设置为午夜(00:00:00.000000)。

当指定该参数时,可以仅仅指定小时值。

返回值:DateTime。

函数执行成功时返回日期和时间组合而成的DateTime类型的值。

如果任何参数的值为
NULL,则DateTime()函数返回NULL。

示例:下面的语句把单行编辑框中用户输入的日期和时间组合成DateTime类型的值,以更新数据库的
DateTime类型的列。

DateTime ldt_OrderDateTime
Date ld_OrderTime
Time lt_OrderTime
ld_OrderTime = Date(sle_orderdate.text)
lt_OrderTime = Time(sle_orderdate.text)
ldt_OrderDateTime = DateTime(ld_OrderTime , lt_OrderTime)
语法二、将Blob类型的值转换成DateTime类型的值
语法:DateTime ( blob )
参数:blob:Blob类型变量,把该变量第一个值转换为DateTime类型的值,其余部分被忽略。

blob参数也可以是包含blob类型数据的Any类型变量。

返回值:DateTime。

函数执行成功时返回相应的DateTime类型值。

如果blob参数的值为NULL,则DateTime()函数返回NULL。

10、IsDate()
功能:检测指定的字符串是否包含有效的日期。

语法:IsDate ( datevalue )
参数:datevalue:string类型,指定要检测的字符串。

返回值:Boolean。

如果datevalue包含了有效的日期,则IsDate()函数返回TRUE,否则返回FALSE。

如果datevalue参数的值为NULL,则IsDate()函数返回NULL。

示例:下面的语句返回TRUE。

IsDate(“Feb 4,2004”)
下面的语句返回FALSE。

IsDate(“Feb 43,2004”)
11、IsNull()
功能:测试变量或表达式的值是否是NULL。

语法:IsNull ( any )
参数:any:要测试的变量或表达式。

返回值:Boolean:如果any的值为NULL,函数返回TRUE,否则函数返回FALSE。

示例:下面的语句执行后,lb_test的值为TURE。

Integer a , b
Boolean lb_test
SetNull(b)
lb_test = IsNull(a + b)
12、IsNumber()
功能:测试字符串是否是有效的数值。

语法:IsNumber ( string )
参数:string:string类型,要测试的字符串。

返回值:Boolean:如果string的值为有效的PowerScript数字,函数返回TRUE,否则函数返回FALSE。

如果string参数的值为NULL,则IsNumber()函数返回NULL。

示例:1、下面的语句返回TRUE。

IsNumber(“11.22”)
下面的语句返回FALSE。

IsNumber(“A4545”)
2、如果单行编辑框sle_Age中的数据为32,则下面的语句把32保存在整型变量li_YearsOld 中。

Integer = li_YearsOld
IF IsNumber(sle_Age.Text) THEN
li_YearsOld = integer(sle_Age.Text)
END IF
13、IsTime()
功能:测试字符串的值是否是有效的时间。

语法:IsTime ( timevalue )
参数:timevalue:string类型,要测试的字符串。

返回值:Boolean:如果timevalue的值为有效的时间,函数返回TRUE,否则函数返回FALSE。

如果timevalue 参数的值为NULL,则IsTime()函数返回NULL。

示例:下面的语句返回TRUE。

IsTime(“8:00:00 am”)
下面的语句返回FALSE。

IsTime(“25:00”)
14、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参数的语法格式为:
正常字符串格式;空值时格式
在“正常字符串格式”中,@代表字符串中的任意字符,除此之外的任何字符照原样显示,例如,如果定义了下面的格式:
(@@)@@@@-@@@@
则字符串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 nbr = 123
string string1
string1 = string(nbr,”0000;(000);****;空”)
4、下面的语句把string1设置为123:
integer nbr = -123
string string1
string1 = string(nbr,”000;(000);****;空”)
5、下面的语句把string1设置为****:
integer nbr = 0
string string1
string1 = string(nbr,”0000;(000);****;空”)
6、下面的语句把string1设置为空:
integer nbr
string string1
SetNull(nbr)
string1 = string(nbr,”0000;(000);****;空”)
15、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。

示例:下面的语句从DateTime类型变量ldt_StartDateTime中提取时间并保存在
lt_StartTime中。

Time lt_StartTime
lt_StartTime = Time(ldt_StartDateTime)
语法二、将其值是个有效时间的字符串转换成Time类型的值
语法:Time ( string )
参数:string:string类型,其值包括一个有效的以字符串形式表示的时间(比如9am或10:25),string参数也可以是包含时间类型数据的Any类型变量。

返回值:Time。

函数执行成功时返回相应的Time类型值。

如果string参数中的值不是有效的PowerScript时间或数据类型不兼容,那么Time()函数返回00:00:00.000000。

如果string 参数的值为NULL,则Time()函数返回NULL。

示例:下面的代码把字符串形式表示的时间转换为Time类型的时间。

Time(“23:45:23”)
语法三、将表示时、分、秒、以及微秒的整数组合成一个时间值
语法:Time ( hour, minute, second {, microsecond } )
参数:hour:integer类型,指定时间中的小时,从0到23;
minute:integer类型,指定时间中的分钟,从0到59;
second:integer类型,指定时间中的秒,从0到59;
microsecond:integer类型,可选项,指定时间中的微秒,从0到32767。

返回值:Time。

函数执行成功时返回由hour、minute、second、microsecond 四个参数确定的时间。

如果这四个参数中任何一个参数使用了无效值(比如小时指定为44),则Time()函数返回NULL。

示例:下面的语句把What_Time变量设置为:“23:45:23”。

Time What_Time
What_Time = Time(23,45,23)
四、日期、时间函数
1、Day()
功能:得到日期型数据中的号数(1到31之间的整数值)。

语法:Day ( date )
参数:date:要得到号数的日期值。

返回值:Integer。

函数执行成功时返回号数(1到31之间的整数值)。

如果date参数的值为NULL,则Day()函数返回NULL。

示例:These statements extract the day (31) from the date literal 1994-01-31 and set li_day_portion to that value:
integer li_day_portion
li_day_portion = Day(1994-01-31)
These statements check to be sure the date in sle_date is valid, and if so set li_day_portion to the day in the sle_date:
integer li_day_portion
IF IsDate(sle_date.Text) THEN
li_day_portion = Day(Date(sle_date.Text))
ELSE
MessageBox("Error", "This date is invalid: " + sle_date.Text)
END IF
2、DayName()
功能:得到指定日期是一周中的星期几(例如,Sunday, Monday...)。

语法:DayName ( date )
参数:date:date类型值或变量。

返回值:String。

函数执行成功时返回指定日期的星期表示(例如,Sunday, Monday...)。

如果date参数的值为NULL,则DayName()函数返回NULL。

示例:These statements evaluate the date literal 1993-07-04 and set day_name to Sunday:
string day_name
day_name = DayName(1993-07-04)
These statements check to be sure the date in sle_date is valid, and if so set day_name to the day in sle_date:
string day_name
IF IsDate(sle_date.Text) THEN
day_name = DayName(Date(sle_date.Text))
ELSE
MessageBox("Error", "This date is invalid: " + sle_date.Text)
END IF
3、DayNumber()
功能:得到日期型数据是一星期中的第几天(用1到7之间的整数表示,星期天为1,星期一为2,...)。

语法:DayNumber ( date )
参数:date:date类型值或变量。

返回值:Integer。

函数执行成功时返回指定日期是一星期中的第几天(用1~7表示,星期天为1,星期一为2,...)。

如果date参数的值为NULL,则DayNumber()函数返回NULL。

示例:These statements evaluate the date literal 1990-01-31 and set day_nbr to 4 (January 31, 1990, was a Wednesday):
integer day_nbr
day_nbr = DayNumber(1990-01-31)
These statements check to be sure the date in sle_date is valid, and if so set day_nbr to the number of the day in the sle_date:
integer day_nbr
IF IsDate(sle_date.Text) THEN
day_nbr = DayNumber(Date(sle_date.Text))
ELSE
MessageBox("Error", "This date is invalid: " + sle_date.Text)
END IF
4、DaysAfter()
功能:得到两个日期间的天数。

语法:DaysAfter ( date1, date2 )
参数:date1:date类型,指定起始日期;
date2:date类型,指定终止日期。

返回值:Long。

函数执行成功时得到两个日期之间的天数。

如果date2的日期在date1的前面,那么DaysAfter()函数返回负值。

如果任何参数的值为NULL,则DaysAfter()函数返回NULL。

示例:1、This statement returns 4:
DaysAfter(2002-12-20, 2002-12-24)
2、This statement returns -4:
DaysAfter(2002-12-24, 2002-12-20)
3、This statement returns 0:
DaysAfter(2003-12-24, 2003-12-24)
4、This statement returns 5:
DaysAfter(2003-12-29, 2004-01-03)
5、If you declare date1 and date2 date variables and assign February 16, 2003, to date1 and April 28, 2003, to date2 as follows:
date date1, date2
date1 = 2003-02-16
date2 = 2003-04-28
then each of the following statements returns 71:
DaysAfter(date1, date2)
DaysAfter(2003-02-16, date2)
DaysAfter(date1, 2003-04-28)
DaysAfter(2003-02-16, 2003-04-28)
5、Hour()
功能:得到时间值中的小时,采用24小时制。

语法:Hour ( time )
参数:time:time类型的值。

返回值:Integer。

函数执行成功时得到time参数中的小时(00到23之间)。

如果time参数的值为NULL,则Hour()函数返回NULL。

示例:1、This statement returns the current hour:
Hour(Now())
2、This statement returns 19:
Hour(19:01:31)
6、Minute()
功能:得到时间值中的分钟,有效值在00~59之间。

语法:Minute ( time )
参数:time:time类型的值。

返回值Integer。

函数执行成功时得到time参数中的分钟(00到59之间)。

如果time参数的值为NULL,则Minute()函数返回NULL。

示例:This statement returns 1:
Minute(19:01:31)
7、Month()
功能:得到日期值中的月份,有效值在1~12之间。

语法:Month ( date )
参数:date:date类型的值。

返回值:Integer。

函数执行成功时得到date参数中的月份(1到12之间)。

如果date参数的值为NULL,则Month()函数返回NULL。

示例:This statement returns 1:
Month(1994-01-31)
These statements store in start_month the month entered in the SingleLineEdit sle_start_date:
integer start_month
start_month = Month(date(sle_start_date.Text))
8、Now()
功能:得到客户机的当前系统时间,返回值为Time类型。

语法:Now()
返回值:Time。

该函数返回客户机的当前系统时间。

示例:This statement returns the current system time.
Now()
This example displays the current time in the StaticText st_time. It keeps the time
up-to-date by setting a timer that triggers a Timer event every 60 seconds. Code in the window's Open event displays the initial time and starts the timer. Code in the Timer event displays the time again.
The following code appears in the window's Open event script:
st_time.Text = String(Now(), "hh:mm")
Timer(60)
A single line in the Timer event script refreshes the time display:
st_time.Text = String(Now(), "hh:mm")
9、RelativeDate()
功能:得到指定日期前多少天或后多少天的日期。

语法:RelativeDate(date,n)
参数:date:Date类型,指定基准日期
n:integer类型,指定天数。

返回值:Date。

当n的值大于0时返回参数date指定日期后第n天的日期;当n的值小于0时返回参数date指定日期前第n天的日期。

如果任何参数的值为NULL,则RelativeDate()函数返回NULL。

示例:This statement returns 1990-02-10:
RelativeDate(1990-01-31, 10)
This statement returns 1990-01-21:
RelativeDate(1990-01-31, - 10)
10、RelativeTime()
功能:得到指定时间前多少秒或后多少秒的时间,采用24小时制。

语法:RelativeTime ( time, n )
参数:time:time类型,指定基准时间
n:long类型,指定秒数。

返回值:Time。

当n的值大于0时返回参数time指定时间后第n秒的时间;当n的值小于0时返回参数time指定时间前第n秒的时间。

如果任何参数的值为NULL,则RelativeTime()函数返回NULL。

示例:This statement returns 19:01:41:
RelativeTime(19:01:31, 10)
This statement returns 19:01:21:
RelativeTime(19:01:31, - 10)
11、Second()
功能:得到时间值中的秒,有效值在00~59之间。

语法:Second ( time )
参数:time:time类型的值。

返回值:Integer。

函数执行成功时得到time参数中的秒(00到59之间)。

如果time参数的值为NULL,则Second()函数返回NULL。

示例:This statement returns 31:
Second(19:01:31)
11、Second()
功能:得到时间值中的秒,有效值在00~59之间。

语法:Second ( time )
参数:time:time类型的值。

返回值:Integer。

函数执行成功时得到time参数中的秒(00到59之间)。

如果time参数的值为NULL,则Second()函数返回NULL。

示例:This statement returns 31:
Second(19:01:31)
12、SecondsAfter()
功能:得到两个时间之间的秒数。

让前一个时间比后一个时间早时,该函数的值为正数;两者相等时为零;反之则为负数。

语法:SecondsAfter ( time1 , time2 )
参数:time1:time类型的值,要度量的时间间隔的起始值;
time2:time类型的值,要度量的时间间隔的结束值;
返回值:Long。

函数执行成功时返回起始时间和结束时间之间的秒数。

如果任何参数的值为NULL,则函数返回NULL。

示例:This statement returns 15:
SecondsAfter(21:15:30, 21:15:45)
This statement returns -15:
SecondsAfter(21:15:45, 21:15:30)
This statement returns 0:
SecondsAfter(21:15:45, 21:15:45)
If you declare start_time and end_time time variables and assign 19:02:16 to start_time and 19:02:28 to end_time as shown below:
time start_time, end_time
start_time = 19:02:16。

相关文档
最新文档