自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle 數(shù)據(jù)庫中時間問題比較

數(shù)據(jù)庫 Oracle
oracle數(shù)據(jù)庫是一種大型數(shù)據(jù)庫系統(tǒng),一般應(yīng)用于商業(yè),政府部門,它的功能很強大,能夠處理大批量的數(shù)據(jù),在網(wǎng)絡(luò)方面也用的非常多。Oracle 數(shù)據(jù)庫在數(shù)據(jù)庫業(yè)界可謂是占有著重要地位,下文就為大家解析Oracle 數(shù)據(jù)庫中時間問題比較。

導(dǎo)讀:在監(jiān)控、診斷、處理數(shù)據(jù)庫性能問題的時候,時間信息往往是非常重要的判斷依據(jù)。有時候可能我們會使用一些比例來判斷性能,但是使用比例而不使用時間往往會將我們帶向錯誤的方向。在以前的版本中,Oracle數(shù)據(jù)庫的時間計量單位是厘秒,使用厘秒最顯而易見的問題就是可能有些操作是小于厘秒的。看上去這似乎不太常見,但是實際上在操作系統(tǒng)上很多操作都是以微妙作為單位的,這意味著操作的起始和終止在不到厘秒就完成了,從厘秒級看就好像沒有發(fā)生一樣,因為持續(xù)時間近似為0。而有時候操作的持續(xù)時間不到厘秒,但是起始和終止發(fā)生在兩個相連的厘秒,所以操作時間不到厘秒但是卻被記錄為厘秒,造成時間記錄的不準(zhǔn)確。Oracle數(shù)據(jù)庫沒有內(nèi)置的方式來記錄時間的流逝。DATE型數(shù)據(jù)用來記錄單獨的時間點;但是要表達一個時間量(也就是一個間隔),數(shù)據(jù)庫的設(shè)計者就必須把時間間隔轉(zhuǎn)換成原始單位秒,然后用一個NUMBER列來保存它。

  雖然NUMBER這個數(shù)據(jù)類型可以以秒為單位準(zhǔn)確地表示時間,但是它使得時間的計算變得很困難。比如,60秒是1分鐘,60分鐘是1個小時,24個小時等于1天——這些數(shù)字在以十進制為基礎(chǔ)的數(shù)字系統(tǒng)中都是非常不實用的。

  在Oracle中,按照SQL 99標(biāo)準(zhǔn),增加了時間間隔型數(shù)據(jù)INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND,它們和其他幾種數(shù)據(jù)類型一起使得對時間的處理更加準(zhǔn)確。TIMESTAMP、TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE等數(shù)據(jù)類型都把時間的表達精確到了若干分之一秒,而且后面兩種還解決了地理位置造成的時間變化。

  Sql語句的等待時間等于ELAPSED_TIME減去CPU_TIME,但是很難看到精確的等待時間。在V$SYSTEM_EVENT 視圖中能夠看到數(shù)據(jù)庫實例級的等待時間(并不是每條Sql語句的),但是看不到發(fā)生在操作系統(tǒng)上的等待時間。

  在SQL和PL/SQL中,你都可以用時間間隔型數(shù)據(jù),它們都是用同一種方式規(guī)定的:  

INTERVAL YEAR[(year_precision)] TO MONTH
INTERVAL DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

  轉(zhuǎn)換函數(shù),與date操作關(guān)系最大的就是兩個轉(zhuǎn)換函數(shù):to_date(),to_char()

  to_date() 作用將字符類型按一定格式轉(zhuǎn)化為日期類型:

  具體用法:to_date('2008-11-27','yyyy-mm-dd'),前者為字符串,后者為轉(zhuǎn)換日期格式,注意,前后兩者要以一對應(yīng)。

  如;to_date('2008-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss') 將得到具體的時間

  對于精確數(shù)值,規(guī)定有缺省值:年和日是兩位數(shù),若干分之一秒是六位數(shù)。

  時間間隔的大小由INTERVAL來表示,后面緊接一個放在單引號中的表達式,以及用來解釋該表達式的文字。用YEAR TO MONTH表示時間間隔大小時要在年和月之間用一個連字符(-) 連接。而DAY TO SECOND表示時間間隔大小時要在日和時間之間用一個空格連接。例子如下:

  返回當(dāng)前時間 年月日小時分秒毫秒

select to_char(current_timestamp(5),'DD-MON-YYYY HH24:MI:SSxFF') from dual;

  返回當(dāng)前 時間的秒毫秒,可以指定秒后面的精度(最大=9) 

select to_char(current_timestamp(9),'MI:SSxFF') from dual;

  實現(xiàn)最大值與當(dāng)前時間的比較

  通過對記錄中最大的時間加上指定月份得到范圍上限,并用CURRENT_DATE獲取當(dāng)前系統(tǒng)時間與之比較,如果超出該上限則判斷為不存在,表示為0,否則表示為1。

 SQL:
SELECT COUNT(*) contains
FROM DUAL t
WHERE CURRENT_DATE < (SELECT (ADD_MONTHS(MAX(t.med_time),14))
FROM red_meettingrecord t
WHERE t.med_tar_id = '225'
AND t.med_usr_id = '001387')

  通過對記錄中最大的時間加上指定月份得到范圍上限,并用CURRENT_DATE獲取當(dāng)前系統(tǒng)時間與之比較,如果超出該上限則判斷為不存在,表示為0,否則表示為1。

關(guān)于Oracle 數(shù)據(jù)庫中時間問題比較的問題就為大家介紹到這,以后我還會繼續(xù)為大家講解大家需要的知識,希望都能幫到大家。

【編輯推薦】

  1. Oracle 數(shù)據(jù)庫中三種不同類型的JDBC驅(qū)動
  2. Oracle 數(shù)據(jù)庫性能優(yōu)化都有那些
  3. Oracle 數(shù)據(jù)庫中查看表空間的2種方法

 

責(zé)任編輯:迎迎 來源: IT專家網(wǎng)
相關(guān)推薦

2011-05-26 13:36:40

Oracle數(shù)據(jù)庫時間處理

2010-04-29 10:56:46

Oracle數(shù)據(jù)庫

2011-07-14 09:48:13

Oracle數(shù)據(jù)庫

2012-05-24 10:11:27

ibmdw

2011-04-13 13:34:58

oracle時間加法

2020-02-17 16:05:17

系統(tǒng)演進過程時間問題

2010-05-07 17:56:10

Oracle數(shù)據(jù)庫安全

2011-06-21 16:13:51

Qt Oracle 驅(qū)動

2009-05-06 15:14:18

DB2日期時間

2010-04-29 09:35:31

Oracle數(shù)據(jù)庫

2011-05-26 14:49:50

ORACLE數(shù)據(jù)庫

2011-05-24 10:26:12

Oracle數(shù)據(jù)庫日志文件

2023-11-16 17:12:33

數(shù)據(jù)庫oracle

2011-03-25 09:05:02

Oracle數(shù)據(jù)庫共享連接專用連接

2009-07-02 00:00:00

OOPOracle

2009-09-04 09:54:59

數(shù)據(jù)庫名

2010-04-30 14:39:03

Oracle數(shù)據(jù)庫

2023-09-05 08:40:57

刪除數(shù)據(jù)庫Oracle

2011-05-18 11:19:37

Oracle優(yōu)化停機時間

2010-04-23 09:23:44

Oracle 數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號