我们在开发系统经常要用到日期型变量,我就以在oracle 9.2中举例
&date1 date
&date2 date
如何给变量赋值 &date1 = ctod('2007/07/01')
ctod('字符串') 这个函数的中字符串格式有系统模型可以设置 File>Edit Model>Properties 中Date format in CtoD funtion
在oracle中,date 的值如果是 0001-01-01 或 空值null
&date2 = DATE2 //从数据读到
或 &data2 = nullvalue(&data2)
这个值用msg(&date2.toString()) 一下,得不到值 会显示 - - ,表示没有值
问大家 &d2 = CtoD('2001-02-03')
msg(&d2.ToString())
这个结果是什么弹出什么对话框?结果是 01-02-03
我们再做假设 &d2 = nullvalue(&d2)
if &d2.isEmpty()
msg('here1')
endif
执行后,系统会弹出对话框here1,表示&d2是空了。
但是我们注意了,在oracle中读取空数据时,isEmpty()和IsNull()是有区别的。
我们假设数据库存在值 D1 = '0001-01-01' 和 null
在procedure中:
for each
where D1.isEmpty()//这个条件只是过滤条件是默认值,数据还是有值,为0001-01-01,即公元1年1月1日。
msg('D1 is 0001-01-01')
endfor
for each
where D1.IsNull()//这个条件只是过滤条件是null,即没有任何数据的
msg('D1 is null')
endfor
在procedure中IsEmptey()和IsNull()还是有区别的。