select trunc(to_date('2004-12-29','yyyy-mm-dd'),'IW') from dual;

解决方案 »

  1.   

    SQL> select trunc(to_date('2004-12-29','yyyy-mm-dd'),'IW') from dual;TRUNC(TO_DATE('2004-12-29','YY
    ------------------------------
    2004-12-27
      

  2.   

    呵呵 这个是 SQL 的内嵌函数 用来截断的. 给你几个例子看看你就知道了:不加参数,就是把所有时间截断,保留日期(日期是以浮点数保存的,1就是1天,所以就是取整)
    SQL> select trunc(to_date('2004-12-29','yyyy-mm-dd')) from dual;TRUNC(TO_DATE('2004-12-29','YY
    ------------------------------
    2004-12-29加参数: MM,截断到月
    SQL> select trunc(to_date('2004-12-29','yyyy-mm-dd'),'MM') from dual;TRUNC(TO_DATE('2004-12-29','YY
    ------------------------------
    2004-12-1加参数: YY,截断到年
    SQL> select trunc(to_date('2004-12-29','yyyy-mm-dd'),'YY') from dual;TRUNC(TO_DATE('2004-12-29','YY
    ------------------------------
    2004-1-1求那一周的最后一天:
    SQL> select trunc(to_date('2004-12-29','yyyy-mm-dd'),'IW')+6 from dual;TRUNC(TO_DATE('2004-12-29','YY
    ------------------------------
    2005-1-2
      

  3.   

    'IW'是日期格式: 是表示ISO规定的一年中的第几周