婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle date 和 timestamp 區別詳解

Oracle date 和 timestamp 區別詳解

熱門標簽:百度地圖標注飯店位置怎么 上海網絡外呼系統 外呼系統好點子 區域地圖標注怎么設置 電話機器人那種好 南通電銷外呼系統哪家強 地圖標注的坐標點 理財產品電銷機器人 百度地圖標注注解

Oracle date 和 timestamp 區別詳解

1.DATE數據類型

     這個數據類型我們實在是太熟悉了,當我們需要表示日期和時間的話都會想到date類型。它可以存儲月,年,日,世紀,時,分和秒。它典型地用來表示什么時候事情已經發生或將要發生。

     DATE數據類型的問題在于它表示兩個事件發生時間間隔的度量粒度是秒。這個問題將在稍后討論timestamp的時候被解決。可以使用TO_CHAR函數把DATE數據進行傳統地包裝,達到表示成多種格式的目的。

SQL> SELECT TO_CHAR(date1,'MM/DD/YYYY HH24:MI:SS') "Date" FROM date_table;
 
 Date 
 --------------------------- 
 06/20/2003 16:55:14 
 06/26/2003 11:16:36

   大多數人陷入的麻煩就是計算兩個時間間的間隔年數、月數、天數、小時數和秒數。你需要明白的是,當你進行兩個日期的相減運算的時候,得到的是天數。你需要乘上每天的秒數(1天=86400秒),然后,你可以再次計算得到你想要的間隔數。下面就是我的解決方法,可以精確計算出兩個時間的間隔。我明白這個例子可以更簡短些,但是我是為了顯示所有的數字來強調計算方式。

SELECT TO_CHAR(date1, 'MMDDYYYY:HH24:MI:SS') date1,
    TO_CHAR(date2, 'MMDDYYYY:HH24:MI:SS') date2,
    trunc(86400 * (date2 - date1)) -
    60 * (trunc((86400 * (date2 - date1)) / 60)) seconds,
    trunc((86400 * (date2 - date1)) / 60) -
    60 * (trunc(((86400 * (date2 - date1)) / 60) / 60)) minutes,
    trunc(((86400 * (date2 - date1)) / 60) / 60) -
    24 * (trunc((((86400 * (date2 - date1)) / 60) / 60) / 24)) hours,
    trunc((((86400 * (date2 - date1)) / 60) / 60) / 24) days,
    trunc(((((86400 * (date2 - date1)) / 60) / 60) / 24) / 7) weeks
 FROM date_table

DATE1 DATE2 SECONDS MINUTES HOURS DAYS WEEKS 
----------------- ----------------- ---------- ---------- ---------- ---------- ---------- 
06202003:16:55:14 07082003:11:22:57 43 27 18 17 2 
06262003:11:16:36 07082003:11:22:57 21 6 0 12 1

2.TIMESTAMP 數據類型

    DATE數據類型的主要問題是它粒度不能足夠區別出兩個事件哪個先發生。ORACLE已經在DATE數據類型上擴展出來了TIMESTAMP數據類型,它包括了所有DATE數據類型的年月日時分秒的信息,而且包括了小數秒的信息。如果你想把   DATE類型轉換成TIMESTAMP類型,就使用CAST函數。

 SQL> SELECT CAST(date1 AS TIMESTAMP) "Date" FROM t; 
 Date 
 ----------------------------------------------------- 
 20-JUN-03 04.55.14.000000 PM 
 26-JUN-03 11.16.36.000000 AM

     正如你看到的,在轉換后的時間段尾部有了一段“.000000”。這是因為從date轉換過來的時候,沒有小數秒的信息,缺省為0。而且顯示格式是按照參數NLS_TIMESTAMP_FORMAT定的缺省格式顯示。當你把一個表中date類型字段的數據移到另一個表的timestamp類型字段中去的時候,可以直接寫INSERT SELECT語句,oracle會自動為你做轉換的。

SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS') "Date" FROM date_table 
 Date 
------------------- 
 06/20/2003 16:55:14 
 06/26/2003 11:16:36

    TIMESTAMP數據的格式化顯示和DATE 數據一樣。注意,to_char函數支持date和timestamp,但是trunc卻不支持TIMESTAMP數據類型。這已經清楚表明了在當兩個時間的差別極度重要的情況下,使用TIMESTAMP數據類型要比DATE數據類型更確切。

 SELECT TO_CHAR(time1,'MM/DD/YYYY HH24:MI:SS:FF3') "Date" FROM date_table
 
 Date 
 ----------------------- 
 06/20/2003 16:55:14:000 
 06/26/2003 11:16:36:000

     計算timestamp間的數據差別要比老的date數據類型更容易。當你直接相減的話,看看會發生什么。結果將更容易理解,第一行的17天,18小時,27分鐘和43秒。

SELECT time1,
    time2,
    substr((time2 - time1), instr((time2 - time1), ' ') + 7, 2) seconds,
    substr((time2 - time1), instr((time2 - time1), ' ') + 4, 2) minutes,
    substr((time2 - time1), instr((time2 - time1), ' ') + 1, 2) hours,
    trunc(to_number(substr((time2 - time1), 1, instr(time2 - time1, ' ')))) days,
    trunc(to_number(substr((time2 - time1), 1, instr(time2 - time1, ' '))) / 7) weeks
 FROM date_table
 
TIME1 TIME2 SECONDS MINUTES HOURS DAYS WEEKS 
------------------------- -------------------------- ------- ------- ----- ---- ----- 
06/20/2003:16:55:14:000000 07/08/2003:11:22:57:000000 43 27 18 17 2 
06/26/2003:11:16:36:000000 07/08/2003:11:22:57:000000 21 06 00 12 1

     這就意味著不再需要關心一天有多少秒在麻煩的計算中。因此,得到天數、月數、天數、時數、分鐘數和秒數就成為用substr函數摘取出數字的事情了。

3.系統日期和時間

     為了得到系統時間,返回成date數據類型。你可以使用sysdate函數。

SQL> SELECT SYSDATE FROM DUAL;

     為了得到系統時間,返回成timestamp數據類型。你可以使用systimpstamp函數。

SQL> SELECT SYSTIMESTAMP FROM DUAL;

    你可以設置初始化參數FIXED_DATE指定sysdate函數返回一個固定值。這用在測試日期和時間敏感的代碼。注意,這個參數對于systimestamp函數無效。

SQL> ALTER SYSTEM SET fixed_date = '2003-01-01-10:00:00'; 
System altered.

SQL> select sysdate from dual; 
SYSDATE 
--------- 
01-JAN-03

SQL> select systimestamp from dual; 
SYSTIMESTAMP 
--------------------------------------------------------- 
09-JUL-03 11.05.02.519000 AM -06:00

4.date和timestamp 的區別

     date類型是Oracle常用的日期型變量,他的時間間隔是秒。兩個日期型相減得到是兩個時間的間隔,注意單位是“天”。例如:查看一下當前距離倫敦奧運會開幕還有多長時間:

 select to_date('2012-7-28 03:12:00','yyyy-mm-dd hh24:mi:ss')-sysdate from dual

結果是:92.2472685185185天,然后你根據相應的時間換算你想要的間隔就行!這個結果可能對程序員有用,對于想直接看到結果的人,這個數字還不是很直觀,所以,就引出了timestamp類型

timestamp是DATE類型的擴展,可以精確到小數秒(fractional_seconds_precision),可以是0 to9,缺省是6。兩個timestamp相減的話,不能直接的得到天數書,而是得到,

多少天,多少小時,多少秒等,例如:同樣查看一下當前距離倫敦奧運會開幕還有多長時間.

select to_timestamp('2012-7-28 03:12:00','yyyy-mm-dd hh24:mi:ss')-systimestamp from dual

      結果是:+000000092 05:51:24.032000000,稍加截取,就可以得到92天5小時,51分鐘,24秒,這樣用戶看起來比較直觀一些!但是這個數字對程序員來說不是很直觀了,如果想要具體的時間長度的話,并且精度不要求到毫秒的話,可以將timestamp類型轉成date類型,然后直接相減即可。

5.date和timestamp之間的相互轉換可以通過

to_char來轉換timestamp——>date:

 select to_date(to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual

date ——>timestamp:

select to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual

     當使用date和timestamp類型的時候,選擇是很清楚的。你可以隨意處置date和timestamp類型。當你試圖轉換到更強大的timestamp的時候,需要注意,它們既有類似的地方,更有不同的地方,而足以造成破壞。兩者在簡潔和間隔尺寸方面各有優勢,請合理地選擇。

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • Oracle數據庫下載及安裝圖文操作步驟
  • Oracle存儲過程基本語法介紹
  • ORACLE 如何查詢被鎖定表及如何解鎖釋放session
  • oracle常用sql語句
  • oracle sqlplus 常用命令大全
  • ORACLE常用數值函數、轉換函數、字符串函數
  • oracle 創建表空間詳細介紹
  • Oracle新建用戶、角色,授權,建表空間的sql語句
  • Oracle正則表達式使用介紹

標簽:百色 寧波 遼源 中衛 紹興 昭通 海東 自貢

巨人網絡通訊聲明:本文標題《Oracle date 和 timestamp 區別詳解》,本文關鍵詞  Oracle,date,和,timestamp,區別,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle date 和 timestamp 區別詳解》相關的同類信息!
  • 本頁收集關于Oracle date 和 timestamp 區別詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品乱子久久久久| 色先锋资源久久综合| 老司机免费视频一区二区| av电影在线观看不卡| 欧美一级高清大全免费观看| 亚洲chinese男男1069| 色先锋久久av资源部| 亚洲一区二区高清| 97aⅴ精品视频一二三区| 久久久久国色av免费看影院| 福利电影一区二区| 久久综合狠狠综合久久综合88 | 中文字幕制服丝袜一区二区三区| 日本aⅴ亚洲精品中文乱码| 在线观看国产91| 国产欧美日韩另类视频免费观看| 懂色av中文一区二区三区| 国产亚洲欧美激情| 国产一二精品视频| 亚洲国产精品av| 91小视频在线免费看| 国产日韩v精品一区二区| 麻豆精品一区二区三区| 欧美主播一区二区三区美女| 亚洲综合999| 91精品国产综合久久久久久久| 久久成人免费日本黄色| 精品美女被调教视频大全网站| 国产一区二区h| 国产精品久久久久久亚洲毛片 | 一区二区高清在线| 欧美日韩另类一区| 日韩激情在线观看| 欧美一级在线免费| 成人精品一区二区三区中文字幕| 在线国产亚洲欧美| 亚洲精品视频在线观看网站| 日韩欧美电影在线| 成人国产在线观看| 日本欧美肥老太交大片| 成人黄色a**站在线观看| 日韩免费成人网| 国产一区二区在线看| 亚洲日本在线看| 91在线porny国产在线看| 国产日产精品1区| av在线这里只有精品| 强制捆绑调教一区二区| 亚洲乱码中文字幕| 久久美女艺术照精彩视频福利播放| av不卡在线播放| 亚洲国产精品一区二区久久| 国产精品家庭影院| 成人的网站免费观看| 精品欧美乱码久久久久久1区2区| 国产精品伦理一区二区| 精品久久久久久综合日本欧美 | 麻豆91在线播放免费| 亚瑟在线精品视频| 中文字幕日韩精品一区| 色哟哟精品一区| 亚洲国产日韩一区二区| 国产欧美日韩卡一| 欧美国产日韩一二三区| 国产欧美日韩在线观看| 欧美自拍偷拍午夜视频| 国产精品 日产精品 欧美精品| 中文av一区特黄| 久久精品一区二区三区不卡牛牛| 日韩免费高清av| 一区二区久久久久| 国产精品视频线看| 中文字幕在线观看一区二区| 成人开心网精品视频| 国产盗摄女厕一区二区三区| 激情五月激情综合网| 亚洲国产成人自拍| 亚洲日本护士毛茸茸| 中文字幕日韩一区| 一区二区三区中文字幕精品精品 | 亚洲综合成人在线视频| 久久久亚洲高清| 久久综合色天天久久综合图片| 日韩写真欧美这视频| 欧美日韩不卡一区二区| 精品久久久久久久久久久久久久久久久| 91久久奴性调教| 欧美疯狂性受xxxxx喷水图片| 9191久久久久久久久久久| 欧美tickling挠脚心丨vk| 色婷婷综合在线| 欧美一区二区三区免费| 日韩免费视频线观看| 中文字幕精品一区二区精品绿巨人| 中文子幕无线码一区tr| 亚洲一卡二卡三卡四卡五卡| 亚洲高清免费视频| 亚洲不卡av一区二区三区| 亚洲在线视频一区| 日韩专区一卡二卡| 日韩欧美精品三级| 99精品久久99久久久久| 国产白丝网站精品污在线入口| 精品一二三四区| 岛国精品在线播放| 欧美乱妇15p| 欧美国产1区2区| 亚洲人精品一区| 国产剧情在线观看一区二区| 99精品视频在线播放观看| 日韩精品一区二区三区视频 | 成人一区二区三区视频在线观看 | 午夜成人免费电影| 国产精品一级二级三级| 欧美色图天堂网| 91精品国产免费| 精品国产一区二区三区四区四| 91精品国产综合久久久久久久久久| 久久先锋资源网| 美女视频黄 久久| 欧美亚洲国产一卡| 久久在线观看免费| 亚洲无人区一区| 成人av网站在线观看| 欧美老女人第四色| 亚洲欧洲日韩在线| 成人黄页毛片网站| 国产精品色哟哟| 成人午夜精品在线| 日本一区二区在线不卡| 美女一区二区久久| 精品国精品国产| 麻豆精品国产传媒mv男同| 欧美一级在线免费| 麻豆精品一区二区av白丝在线| 7777精品伊人久久久大香线蕉 | 国产伦精一区二区三区| 欧美一二三四在线| 悠悠色在线精品| 美女脱光内衣内裤视频久久影院| 9人人澡人人爽人人精品| 99久久精品情趣| 国产视频在线观看一区二区三区| 麻豆免费精品视频| 日韩三级精品电影久久久| 三级成人在线视频| 91成人在线观看喷潮| 亚洲国产精品影院| 欧美色图片你懂的| 久久精品二区亚洲w码| 欧美一区三区四区| 日本欧美在线看| 精品久久久网站| 国产jizzjizz一区二区| 欧美高清一级片在线观看| 成人av午夜影院| 亚洲桃色在线一区| 91视频一区二区| 亚洲午夜电影在线| 日韩精品中文字幕一区二区三区 | 国产成人自拍高清视频在线免费播放| 日韩一区二区三区视频在线| 麻豆久久一区二区| 国产精品久久久久久久久免费相片| 亚洲精品一卡二卡| 欧美精品v国产精品v日韩精品| 亚洲a一区二区| 欧美国产一区二区在线观看| av激情成人网| 性做久久久久久免费观看欧美| 精品久久久久久久久久久久久久久久久 | 欧美日韩高清在线播放| 久久国产尿小便嘘嘘| 精品区一区二区| 成人免费毛片片v| 偷偷要91色婷婷| 日韩一级片在线观看| 不卡的av网站| 亚洲黄色在线视频| 久久久久88色偷偷免费| 国模大尺度一区二区三区| 国产拍欧美日韩视频二区| 欧美视频中文字幕| 粉嫩欧美一区二区三区高清影视| 亚洲综合小说图片| 精品国产sm最大网站免费看| 91小视频在线| 久久99热这里只有精品| 亚洲成a人片在线观看中文| 日韩无一区二区| 欧日韩精品视频| 国产一区二区三区四区五区美女 | 日韩精品一区在线| 91网站视频在线观看| 久久av老司机精品网站导航| 亚洲国产综合色| 国产女人aaa级久久久级| 日韩视频免费直播| 91精品在线免费| 欧美网站一区二区|