就是opdate=sysdate估计你也很难得到结果,sysdate表示系统当前时间,包含时分秒,你那个opdate怎么可能会和sysdate相等呢?
真的要是把空值用0表示的话,oracle中有nvl函数
select nvl(workbillid,0) from kf_workbill
意思就是把workbillid字段为空的显示成0,当然也可以显示成任何字符或者数字
友情提醒一下:
你那个opdate=sysdate是不是该改成
to_char(opdate,'yyyymmdd')=to_char(sysdate,'yyyymmdd')
SELECT substr('DF5811C4A0036', 1, 9)||trim(to_char((to_number(substr('DF5811C4A0036', -4, 4)) + 1), '0000') ) FROM DUAL;
oracle中to number函数是将一个字符串转换为数字数据类型,使用格式为
TO_NUMBER(<value>[, <format>, <NLS parameter>]) RETURN NUMBER。你如果是声明什么int类型或者long类型这样你想保留前面的0可能不行,你声明String类型就是了。如果你觉得声明String类型读取数据库处理麻烦,你就声明int类型,虽然说数据库里面这些数字类型前面没有0,但是你可以取出来的时候用If语句判断,然后在前面加0,这样显示不久成功了吗。create table 表名(字段名 字段类型 default 默认值);
例如:
create table T(col varchar2(10) default '0001');access:
update tab1 set col1 = "0" & col1;
oracle:
update tab1 set col1 = '0' || col1;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)