Oracle 中獲取特定日期時間 (need to H)

SELECT TRUNC(SYSDATE-1, 'YEAR')FROM DUAL; -- 得到今年第一天

 

-- 得到去年第一天
SELECT TRUNC(TRUNC(SYSDATE-1, 'YEAR')-1, 'YEAR')FROM DUAL   

 

select add_months(trunc(sysdate, 'year'), 12) - (1 / 86400)from dual   -- 得到當年最後一天最後時刻分秒。

 

SELECT TRUNC(TO_DATE('20110228', 'YYYYMMDD'), 'MONTH') AS FIRST_DAY_MONTH FROM DUAL --- 獲取指定日期的第一天

 

SELECT TRUNC(SYSDATE, 'MONTH') AS FIRST_DAY_CURRENT_MONTH FROM DUAL;   -- 得系統當月第一天

 

--- 獲得去年的上個月第一天到今年的上個月的最後一天的最後時間點。如當前爲2011-09,則返回2010-08-01 至2011-08-31 23:59:59

SELECT TRUNC(ADD_MONTHS(SYSDATE, -13), 'MONTH'),  -- fist_day_of_previous_month_of_last_year

       TRUNC(SYSDATE, 'MONTH') - (1 / 86400)      -- end_datetime_of_last_month

FROM DUAL;

 

SELECT TRUNC(SYSDATE, 'MONTH') - (1 / 86400)FROM DUAL;  -- 得系統上個月最後一天最後時間點

 

--- 獲取指定月的上上一個月的起止日期段。

SELECT TRUNC(ADD_MONTHS(SYSDATE, -2), 'MONTH') AS fisrt_day_of_last_last_month,

       Trunc(ADD_MONTHS(SYSDATE, -1), 'MONTH') - (1 / 86400) AS Last_Day_of_last_Last_Month

FROM DUAL;

 

SELECT TRUNC(ADD_MONTHS(to_date('20110220', 'yyyymmdd'), -2), 'MONTH') AS fisrt_day_of_last_last_month,

       Trunc(ADD_MONTHS(to_date('20110220', 'yyyymmdd'), -1), 'MONTH') - (1 / 86400) AS Last_Day_of_last_Last_Month

FROM DUAL;

 

--- 獲取上一天最後時刻點的二個方法

select (TRUNC(NEXT_DAY(SYSDATE, 1), 'DAY') - (1 / 86400)) - 3 from dual;

SELECT TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') - (1 / 86400) FROM DUAL;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章