oracle——時間

時間數據

1. 插入時間數據

  • 插入語法
命令:insert into floor values (to_date('年-月-日 時:分:秒','YYYY-MM-DD HH24:MI:SS'));

</br>

  • 完整的時間插入
insert into floor values (to_date('2010-07-12 09:10:12','YYYY-MM-DD HH24:MI:SS'));

查詢顯示:2010-07-12 09:10:12.0
</br>

  • 缺少秒
insert into floor values (to_date('2010-07-12 09:10','YYYY-MM-DD HH24:MI'));

查詢顯示:2010-07-12 09:10:00.0
</br>

  • 缺少分
insert into floor values (to_date('2010-07-12 09','YYYY-MM-DD HH24'));

查詢顯示:2010-07-12 09:00:00.0
</br>

  • <font color='red'>當省略了HH、MI、SS 對應的參數時,oracle會使用0作為其默認值。即取整到當前日。</font>
insert into floor values (to_date('2010-07-12','YYYY-MM-DD'));

查詢顯示:2010-07-12 00:00:00.0
</br>

  • <font color='red'>如果輸入的時間忽略 日DD ,oracle會 01 作為日的默認值,即取整到月。</font>
insert into floor values (to_date('2010-07','YYYY-MM'));

顯示時間:2010-07-01 00:00:00.0
</br>

  • <font color='red'>如果輸入的時間忽略 月MM,oracle不會取整到年,而是取整到當前月。</font>
insert into floor values (to_date('2010','YYYY'));

查詢顯示:2010-06-01 00:00:00.0

</br>

2、特殊時間處理

  • 時間查詢延遲

</br>

  • 在系統的時間基礎上延遲五秒
sysdate+(5/24/60/60);

</br>

  • 在系統時間基礎上延遲五分鐘
sysdate+(5/24/60);

</br>

  • 在系統的時間基礎上延遲五小時
sysdate+5/24;

</br>

  • 在系統時間基礎上延遲五天
sysdate+5;

</br>

  • 在系統時間基礎上延遲五月
add_months(sysdate,-5);

</br>

  • 在系統時間基礎上延遲五年
add_months(sysdate,-5^12);

</br>


</br>

  • 上月月末的時間
select last_day(add_months(sysdate,-1)) from tablename;

</br>

  • 本月的最后一秒
select trunc(add_months(sysdate,1),'MM')-1/24/60/60 from dual;

</br>

  • 本周星期一的日期
select trunc(sysdate,'day')+1 from dual;

</br>

  • 年初,至今的天數
select ceil(sysdate-trunc(sysdate,'year')) from dual;

</br>

  • 今天是今年的第幾周
select to_char(sysdate,'fmww') from dual;

</br>

  • 今天是本月的第幾周
select to_char(sysdate,'ww')-to_char(trunc(sysdate,'MM'),'ww')+1 as 'weekOfMon' from dual;

</br>

  • 當前月的天數
select to_char(last_day(sysdate,'dd'),days) from dual;

</br>

  • 今年的天數
select * add_months(trunc(sysdate,'year'),12)-trunc(sysdate,'year') from dual;

</br>

  • 下個星期一的日期
select next_day(sysdate,'monday') from dual;

</br>

  • 判斷當前時間是上午下午還是晚上
select case 
    when to_number(to_char(sysdate,'hh24')) between 6 and 11 then '上午';
    when to_number(to_char(sysdate,'hh24')) between 11 and 17 then '下午';
    when to_number(to_char(sysdate,'hh24')) (between 17 and 23) and (between 0 and 6) then '晚上';
end 
from dual;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • ORACLE日期時間函數大全 TO_DATE格式(以時間:2007-11-02 13:45:25為例) Year:...
    雨一流閱讀 686評論 0 2
  • 轉載blog.csdn.net/haiross/article/details/12837033 TRUNC函數用...
    forever_smile閱讀 4,858評論 0 1
  • 1.簡介 數據存儲有哪些方式?電子表格,紙質文件,數據庫。 那么究竟什么是關系型數據庫? 目前對數據庫的分類主要是...
    喬震閱讀 1,776評論 0 2
  • 遇到的問題也很簡單:表1是一個統計信息表,每小時整點的時候統計一次,歷史統計的數據不刪除,統計時間字段為creat...
    會點代碼的大叔閱讀 761評論 0 1
  • 神知道----小說原創據說李家村小學原是李家族人的家廟,聽說學校正北漏風漏雨的三間瓦房大殿是族人去世后停放死尸的地...
    東原郡人閱讀 243評論 0 0