oracle中關於日期的獲取


最近的一個功能定時任務要求在當天凌晨2點生成前一天的數據。涉及到數據庫時間的操作,特此記錄一下,整理關於日期獲取的筆記如下

-- 獲取當前系統的前一天日期0點到23:59:59的時間
select  TRUNC(SYSDATE - 1) , TRUNC(SYSDATE - 1)+1-1/86400  from dual;
--獲取當天時間的0時0分
select TRUNC(SYSDATE) FROM dual;
--獲取當天時間的23點59分59秒(在當天0時0分0秒的基礎上加1天后再減1秒)
SELECT TRUNC(SYSDATE)+1-1/86400 FROM dual;
--取得當前日期是一個星期中的第幾天,注意:星期日是第一天
select to_char(sysdate,'D'),to_char(sysdate,'DAY') from dual;
--獲取當前月的第一天和最后一天
select to_char(sysdate,'yyyy-mm')||'-01' firstday,to_char(last_day(sysdate),'yyyy-mm-dd') lastday from dual;
--獲取當前月份
SELECT EXTRACT(MONTH FROM sysdate) FROM DUAL;
--求出當前日期的下一個指定禮拜是幾號,意思就是當前日期的下一個星期一是幾號
select next_day(sysdate,'星期一') from dual;
--返回當前日期
select trunc(sysdate)from dual;
--返回當前小時
select trunc(sysdate,'hh')from dual;
--返回當前時間的分鍾,沒有秒的精確,只有毫秒。
select trunc(sysdate,'mi')from dual;
--返回當前星期的第一天(為星期天,工作的第一天為星期一)
select trunc(sysdate,'d')from dual;
--返回當前年份的第一天
select trunc(sysdate,'yyyy')from dual;
--返回當前月份的第一天
select trunc(sysdate,'mm')from dual;
--求當前月份的最后一天
select last_day(sysdate) from dual;
--求當前日期添加月份過后的日期
select add_months(sysdate,2) from dual;
--取出當前日期的年份 
select extract(year from sysdate) from dual;
--取出當前日期的月份
select extract(month from sysdate) from dual;
--取出當前日期的天數
select extract(day from sysdate) from dual;
--拼接日期,將年月日從系統中取出然后拼接年,月,日
select extract(year from sysdate) ||''||extract(month from sysdate) ||''||extract(day from sysdate) ||'' from dual;
--時間戳以獲取精確的時間
select systimestamp as 國際時間 from dual;
--以指定格式獲取日期
select TO_CHAR(sysdate,'yyyy-mm-dd') from dual;
--獲取當前時間一個月之后的時間
select add_months(sysdate,1)from dual;
--獲取到當前時間半年之后的時間
select add_months(sysdate,6)from dual;

--to_char()函數,將日期轉換為字符串表示
select to_char(sysdate,'yyyy"年"mm"月"dd"日"')from dual;
--將數字轉換為指定格式,例如轉換為貨幣形式
select to_char(123,'$9,999,999.99')from dual;
--to_number()函數,將一個數字字符串轉換為數字,以便進行計算
select to_number('1234567.08') from dual;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM