SELECT TRUNC(TO_DATE('2005-12-28','YYYY-MM-DD'),'D') FROM DUAL;
SELECT ROUND(TO_DATE('2005-12-28','YYYY-MM-DD'),'D') FROM DUAL
能够说说他们各自是什么意思吗﹖有什么区别

解决方案 »

  1.   

    ·ROUND(d[,fmt])
      将日期d按照fmt指定的格式舍入,fmt为字符串。
    例如:  round(to_date('20030105','yyyymmdd'),'yyyy')='01-1月 -03'
            round(to_date('20030805','yyyymmdd'),'yyyy')='01-1月 -04' ·TRUNC(d[,fmt]) 
      返回由fmt指定的单位的日期d. 
    例如:  TRUNC(to_date('20030105','yyyymmdd'),'yyyy')='01-1月 -03'
            TRUNC(to_date('20030805','yyyymmdd'),'yyyy')='01-1月 -03'SQL> SELECT ROUND(TO_DATE('2005-12-28','YYYY-MM-DD'),'YYYY') FROM DUAL;ROUND(TO_DATE('20
    -----------------
    20060101 00:00:00SQL> SELECT TRUNC(TO_DATE('2005-12-28','YYYY-MM-DD'),'YYYY') FROM DUAL;TRUNC(TO_DATE('20
    -----------------
    20050101 00:00:00
      

  2.   

    比如ROUND|TRUNC(VALUE,N),其区别在于
    round:把'VALUE'从'N'位四舍五入;
    trunc:把'VALUE'从'N'位截断。
      

  3.   

    SQL> select round(1.6),trunc(1.6) from dual;ROUND(1.6) TRUNC(1.6)
    ---------- ----------
             2          1日期一样的道理:
    SQL> select round(date '2005-12-18','month') round_date,trunc(date '2005-12-18','month') trunc_date from dual;ROUND_DATE  TRUNC_DATE
    ----------- -----------
    2006-1-1    2005-12-1