主頁(yè) > 知識(shí)庫(kù) > ORACLE中的日期加減操作實(shí)例介紹

ORACLE中的日期加減操作實(shí)例介紹

熱門(mén)標(biāo)簽:七日殺a19.5全地圖標(biāo)注 高德地圖標(biāo)注公司名字大全 N個(gè)你智能電銷(xiāo)機(jī)器人 地圖標(biāo)注怎么保存 騰訊地圖標(biāo)注要費(fèi)用嗎 廣東營(yíng)銷(xiāo)智能外呼系統(tǒng)商家 外呼電話系統(tǒng)用卡嗎 電渠外呼系統(tǒng) 車(chē)瑪仕極限運(yùn)動(dòng)場(chǎng)所地圖標(biāo)注

無(wú)論是DATE還是timestamp都可以進(jìn)行加減操作。
可以對(duì)當(dāng)前日期加年、月、日、時(shí)、分、秒,操作不同的時(shí)間類(lèi)型,有三種方法:

1 使用內(nèi)置函數(shù)numtodsinterval增加小時(shí),分鐘和秒
2 加一個(gè)簡(jiǎn)單的數(shù)來(lái)增加天
3 使用內(nèi)置函數(shù)add_months來(lái)增加年和月

例:
對(duì)當(dāng)前日期增加一個(gè)小時(shí):

復(fù)制代碼 代碼如下:

SQL> select sysdate, sysdate+numtodsinterval(1,'hour') from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
2010-10-14 21:38:19 2010-10-14 22:38:19


對(duì)當(dāng)前日期增加50分種
復(fù)制代碼 代碼如下:

SQL> select sysdate, sysdate+numtodsinterval(50,'minute') from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
2010-10-14 21:39:12 2010-10-14 22:29:12


對(duì)當(dāng)前日期增加45秒
復(fù)制代碼 代碼如下:

SQL> select sysdate, sysdate+numtodsinterval(45,'second') from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
2010-10-14 21:40:06 2010-10-14 21:40:51


對(duì)當(dāng)前日期增加3天
復(fù)制代碼 代碼如下:

SQL> select sysdate, sysdate+3 from dual ;

SYSDATE             SYSDATE+3
——————- ——————-
2010-10-14 21:40:46 2010-10-17 21:40:46


對(duì)當(dāng)前日期增加4個(gè)月
復(fù)制代碼 代碼如下:

SQL> select sysdate, add_months(sysdate,4) from dual ;

SYSDATE             ADD_MONTHS(SYSDATE,
——————- ——————-
2010-10-14 21:41:43 2011-02-14 21:41:43


當(dāng)前日期增加2年
復(fù)制代碼 代碼如下:

SQL> select sysdate, add_months(sysdate,12*2) from dual ;

SYSDATE             ADD_MONTHS(SYSDATE,
——————- ——————-
2010-10-14 21:42:17 2012-10-14 21:42:17


timestamp的操作方法與上面類(lèi)似;
求兩個(gè)日期之差:
例:求2007-5-23 21:23:34與當(dāng)前時(shí)間之間的差值。
復(fù)制代碼 代碼如下:

SQL> select sysdate-to_date('20070523 21:23:34′,'yyyy-mm-dd hh24:mi:ss') dt from
dual ;

DT
———-
1240.01623


如果兩個(gè)日期直接相減,得到的結(jié)果是一個(gè)數(shù)據(jù)型,我們可能想要得到兩個(gè)日期相差值表現(xiàn)形式為:
**年**月**日 **:**:**
復(fù)制代碼 代碼如下:

SQL> SELECT NUMTOYMINTERVAL(MONTHS_BETWEEN(DT1, DT2), ‘month') mon,
2         numtodsinterval(dt1-(add_months(dt2,trunc(MONTHS_BETWEEN(DT1, DT2)))
),'day') DAY
3    FROM (SELECT SYSDATE DT1,
4                 TO_DATE('20070523 21:23:34′, ‘yyyy-mm-dd hh24:mi:ss') DT2
5          FROM DUAL)
6 ;

MON                  DAY
—————-     ———————-
+000000003-04        +000000021 00:40:15.999999999


即:3年 4 個(gè)月 21 天 00:40:15.99999999

您可能感興趣的文章:
  • Oracle時(shí)間日期操作方法小結(jié)
  • Oracle關(guān)于時(shí)間/日期的操作
  • oracle 日期操作語(yǔ)句總結(jié)

標(biāo)簽:棗莊 長(zhǎng)沙 來(lái)賓 遼寧 大興安嶺 贛州 蘇州 玉樹(shù)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ORACLE中的日期加減操作實(shí)例介紹》,本文關(guān)鍵詞  ORACLE,中的,日期,加減,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ORACLE中的日期加減操作實(shí)例介紹》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ORACLE中的日期加減操作實(shí)例介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章