SELECT to_date('19800101','YYYYMMDD')+1000 FROM DUAL

解决方案 »

  1.   

    我试了一下,应该可以直接+天数的
    SQL> select to_date('01-01-1981','dd-mm-yyyy')+1000 day from dual;DAY
    ----------
    28-9月 -83还请各位指教~
      

  2.   

    Oracle 在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。 Oracle 所提供的一些日期函数如下所示。 
    1. SYSDATE   返回当前的日期和时间。  
      
    2. ADD_MONTHS(d, no_of_month)  
    返回带有“no_of_month”的日期“d”。参数“no_of_month”可为任何整数。 
    示例 
    SELECT ADD_MONTHS(hiredate,1) FROM emp   
    WHERE ename = 'SMITH'; 
    在此示例中,为雇员 SMITH 的雇用日期加上一个月。 
    输出:  
      ADD_MONTH (hiredate,1) 
    ----------  
    17-JAN-81 
    3. LAST_DAY(month_day)  
    返回变量“month_day”中所指定月份的最后一天的日期。 
    示例 SELECT SYSDATE, LAST_DAY(SYSDATE)  FROM DUAL; 
    输出:  
      SYSDATE        LAST_DAY( SYSDATE)  
     ---------      -----------  
     11-OCT-99       31-OCT-99  
     4. MONTHS_BETWEEN(d1, d2)  
    返回日期 d1 和 d2 之间的月份数。如果 d1 晚于 d2,结果为正,否则返回负数。 
    示例 SELECT MONTHS_BETWEEN (SYSDATE, hiredate)   
    FROM emp; 
    输出:  
      MONTHS_BETWEEN(SYSDATE,HIREDATE)  
     --------------------------------  
                            225.82321  
                            223.72644  
                            223.66192  
                            222.30708  
                            216.46837  
                            221.33934  
                            220.08127  
                            149.75869  
                            214.82321  
                            217.11353  
                            148.62966  
                            214.27482  
                            214.27482  
                            212.62966 5. NEXT_DAY(d, day_of_week)  
    返回由“day_of_week”命名的,在变量“d”指定的日期之后的第一个工作日的日期。参数“day_of_week”必须为该星期中的某一天。 
    示例 
    SELECT NEXT_DAY(SYSDATE,'MONDAY') FROM DUAL; 
    此例中假设系统日期为“25-OCT-99”[为星期一]。执行此命令时,得到的输出为“01-nov-99”。 
    输出:  
      NEXT_DAY( SYSDATE,'MONDAY') 
    ----------  
    01-NOV-99  
      

  3.   

    select to_date('1980.1.1','yyyy.mm.dd')+1000 from dual;