oracle日期計算,oracle日期
查詢某月有多少天,代碼如下:
select to_number(add_months(trunc(to_date('2014-11-4 11:13:53','yyyy-mm-dd hh24:mi:ss'),'mm'),1) - trunc(to_date('2014-11-4 11:13:53', 'yyyy-mm-dd hh24:mi:ss'),'mm')) daycountfrom dual;select to_number(add_months( trunc(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'),'mm'),1) - trunc(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss'),'mm')) dayscount from dual;
SELECT add_months(trunc(sysdate,'mm'),1) - trunc(sysdate,'mm') from dual;
oracle查詢月的最後一天,代碼如下:
select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", to_char(last_day(sysdate), 'yyyy-mm-dd') "本月最後一天" from dual;SELECT to_char(sysdate,'YYYY'), to_char(sysdate,'MM'), to_char(sysdate,'DD') FROM dual;
select to_char(trunc(sysdate,'MONTH'),'yyyy-mm-dd') First_DayOfMonth ,to_char(last_day(trunc(sysdate,'MONTH')),'yyyy-mm-dd') Last_DayOfMonth from dual
SELECT ADD_MONTHS(TO_DATE(LAST_DAY(SYSDATE) + 1), -1) FROM DUAL;SELECT ADD_MONTHS(TO_DATE(LAST_DAY(SYSDATE) ), -1) FROM DUAL;
附:oracle日期運算:
--Oracle trunc()函數的用法 /**************日期********************/ 1.select trunc(sysdate) from dual --2011-3-18 今天的日期為2011-3-18 2.select trunc(sysdate, 'mm') from dual --2011-3-1 返回當月第一天. 3.select trunc(sysdate,'yy') from dual --2011-1-1 返回當年第一天 4.select trunc(sysdate,'dd') from dual --2011-3-18 返回當前年月日 5.select trunc(sysdate,'yyyy') from dual --2011-1-1 返回當年第一天 6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回當前星期的第一天 7.select trunc(sysdate, 'hh') from dual --2011-3-18 14:00:00 目前時間為14:41 8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00 TRUNC()函數沒有秒的精確 /***************數字********************/ /* TRUNC(number,num_digits) Number 需要截尾取整的數字。 Num_digits 用於指定取整精度的數字。Num_digits 的預設值為0。 TRUNC()函數截取時不進行四捨五入 */ 9.select trunc(123.458) from dual --123 10.select trunc(123.458,0) from dual --123 11.select trunc(123.458,1) from dual --123.4 12.select trunc(123.458,-1) from dual --120 13.select trunc(123.458,-4) from dual --0 14.select trunc(123.458,4) from dual --123.458 15.select trunc(123) from dual --123 16.select trunc(123,1) from dual --123 17.select trunc(123,-1) from dual --120
oracle 日期計算
SQL> select sysdate+rownum from dual connect by rownum < (sysdate + 10) - sysdate;
SYSDATE+R
---------
22-FEB-10
23-FEB-10
24-FEB-10
25-FEB-10
26-FEB-10
27-FEB-10
28-FEB-10
01-MAR-10
02-MAR-10
jsp oracle日期計算問題
select to_date('20081028','yyyymmdd') - to_date('20081023','yyyymmdd') from dual
日期可以直接減來得到天數,不要符號加個abs()函數就可以了