gx +java 日期型类型的变量在oracle中的注意事项

我们在开发系统经常要用到日期型变量,我就以在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()还是有区别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值