由于设计失误,日期型数据设为date,在进入数据时,只要是date型,它显示的值都为'YYYY-MM-DD HH:MM:SS'格式,我不想要时间,只想要日期,请问如何把所有表中带DATE型的字段在insert 或 update 时格式化为'yyyy-mm-dd',希望用一系统触发器实现,

解决方案 »

  1.   

    其实你的数据库只存储的格式没有关系的呀,只要你在显示或是查询数据的时候不需要查询后面的HH:MM:SS的内容就是了呀
      

  2.   

    当然,如果你用trunc(datevalue)的话,你在数据库里存储的内容将是:YYYY-MM-DD:00:00:00
      

  3.   

    trunc(sysdate)  --也是包括时分秒,只是00:00:00
    楼主或者可以用字符串
    to_char(sysdate,'yyyy-mm-dd')
      

  4.   

    可以试一下楼上的方法
    但只能对于会话进行修改
    不能alter system
      

  5.   

    由于设计失误,日期型数据设为date
    ------------------------------------
    日期性数据当然使用DATE类型,天经地义的事情怎么会是失误假定表A中MYDATE是日期类型的,你只想要日期部分,那也很简单:
    1、更新现有纪录:
       UPDATE A SET MYDATE=TRUNC(MYDATE);
    2、添加一个触发器,对插入的日期去掉时间部分
    CREATE TRIGGER MYTRIGGER
    BEFORE INSERT ON A
    FOR EACH ROW
    BEGIN
      :NEW.MYDATE := TRUNC(:NEW.MYDATE);
    END;
    /