alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select starttime from tbname;在插入之前判断。

解决方案 »

  1.   

    或者设置 这两个字段 not null如果插入null的话,将插入失败。
      

  2.   

    要是这么简单干吗40分呀!
    这个表的lecturer和room都是可以为空的!这么说吧,只有CODE和SEMESTER不能为空,因为它们是联合主键,其它都可以为空,这样的意思是说可以暂时可以不定其值,但是至少在开学前两周要确定其值.因此,直接在表中约束都是不现实的.我的想法是在数据库启动时检查或者能有某种方式自动检测这两个条件,用starttime-sysdate的差来判断是否大于两周,如果已经小于14或者是负值就要发出提示,计算应该不是问题,关键是触发的条件应该是什么? 如果仅仅在插入时触发,那要是我开学前一个月第一次插入数据后一直到开学都没有再改动过表怎么办呢?下一次对数据的修改也不知道是何年何月了!!!!!!!!!!!!!当然如果没有人有新意见的话,我也只能在插入时判断了!!!!!!!!
      

  3.   

    1.(我用了to_date("2004-7-26 18:45:30","YYYY-MM-DD HH24-MIN-SEC"),具体字符记不清了:)...
       以上语句改用:to_date("2004-7-26 18:45:30","YYYY-MM-DD HH24:MI:SS")插入数据
    2.同意你插入时判断,参考有关日期语句格式:
    SQL> select sysdate-to_date('2004/10/15','yyyy/mm/dd') from dual;SYSDATE-TO_DATE('2004/10/15','YYYY/MM/DD')
    ------------------------------------------
                                     14.350035SQL>  select sysdate-to_date('2004/10/14','yyyy/mm/dd') from dual;SYSDATE-TO_DATE('2004/10/14','YYYY/MM/DD')
    ------------------------------------------
                                     15.350185
      

  4.   

    在插入纪录的时候检查一下是必要的,因为这个时候如果时间到了就可以及时地提醒一下。但是象 qiaozhiwei(乔)说的那样写个job定时执行是必要的。
    另外如果你的系统是有用户登陆的界面的话,就应该此用户登陆后,在他的客户端定时发送请求到服务端,随时要求验证,或者由服务端主动验证,然后发信息给客户端。