獲取年
成都創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)、手機(jī)網(wǎng)站開發(fā)、微商城、網(wǎng)站托管及成都企業(yè)網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都花箱行業(yè)客戶提供了網(wǎng)站推廣服務(wù)。
select to_char(sysdate,'yyyy') from dual--2016
select to_char(sysdate,'YYYY') from dual--2016
獲取月
select to_char(sysdate,'mm') from dual--10
select to_char(sysdate,'MM') from dual--10
獲取日
select to_char(sysdate,'dd') from dual--10
select to_char(sysdate,'DD') from dual--10
獲取時(shí)
select to_char(sysdate,'hh24') from dual--15
select to_char(sysdate,'hh') from dual--03
select to_char(sysdate,'HH') from dual--03
select to_char(sysdate,'HH24') from dual--15
獲取分鐘
select to_char(sysdate,'MI') from dual--14
select to_char(sysdate,'mi') from dual--14
獲取秒
select to_char(sysdate,'ss') from dual--35
select to_char(sysdate,'SS') from dual--40
從上面的測(cè)試SQL可以看出年月日yyyy,mm,dd,hh,mi,ss的大小寫對(duì)于從oracle中獲取年月日時(shí)分秒沒有影響?
對(duì)于獲取小時(shí)分12小時(shí)和24小時(shí)的情況,如果你想獲取顯示下午的時(shí)間,你可以采用hh24,這樣就會(huì)顯示類似于15:30而不是03:30
甲骨文股份有限公司(NASDAQ:ORCL,Oracle)
是全球大型數(shù)據(jù)庫(kù)軟件公司。總部位于美國(guó)加州紅木城的紅木岸(Redwood Shores),現(xiàn)時(shí)首席執(zhí)行官為公司創(chuàng)辦人勞倫斯·埃里森(Lawrence J. Ellison)。
2016年11月6日,甲骨文公司(Oracle)股東同意以 93 億美元的資金收購(gòu)Netsuite公司,每股價(jià)格約為 109 美元。
20世紀(jì)約70年代 一間名為Ampex的軟件公司,正為中央情報(bào)局設(shè)計(jì)一套名叫Oracle的數(shù)據(jù)庫(kù),埃里森是程序員之一。
1977年埃里森與同事Robert Miner創(chuàng)立“軟件開發(fā)實(shí)驗(yàn)室”(Software Development Labs),當(dāng)時(shí)IBM發(fā)表“關(guān)系數(shù)據(jù)庫(kù)”的論文,埃里森以此造出新數(shù)據(jù)庫(kù),名為甲骨文。
1978年 公司遷往硅谷,更名為“關(guān)系式軟件公司”(RSI)。RSI在1979年的夏季發(fā)布了可用于DEC公司的PDP-11計(jì)算機(jī)上的商用ORACLE產(chǎn)品,這個(gè)數(shù)據(jù)庫(kù)產(chǎn)品整合了比較完整的SQL實(shí)現(xiàn),其中包括子查詢、連接及其他特性。美國(guó)中央情報(bào)局想買一套這樣的軟件來(lái)滿足他們的需求,但在咨詢了IBM公司之后發(fā)現(xiàn)IBM沒有可用的商用產(chǎn)品,他們聯(lián)系了RSI。于是RSI有了第一個(gè)客戶。
最先提出“關(guān)系數(shù)據(jù)庫(kù)”的IBM采用RSI的數(shù)據(jù)庫(kù)。1982年再更名為甲骨文(Oracle)。
用to_char就可以了
比如當(dāng)前時(shí)間的
select?to_char(sysdate,'')?from?dual
結(jié)果:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期轉(zhuǎn)化為字符串
select to_char(sysdate,'yyyy') as nowYear from dual; //獲取時(shí)間的年
select to_char(sysdate,'mm') as nowMonth from dual; //獲取時(shí)間的月
select to_char(sysdate,'dd') as nowDay from dual; //獲取時(shí)間的日
select to_char(sysdate,'hh24') as nowHour from dual; //獲取時(shí)間的時(shí)
select to_char(sysdate,'mi') as nowMinute from dual; //獲取時(shí)間的分
select to_char(sysdate,'ss') as nowSecond from dual; //獲取時(shí)間的秒
sysdate+1是加一天,sysdate+/-(1/48)就是加/減 半個(gè)小時(shí)
select count(*) from table_name where table_name.date between to_char(sysdate-1/48,'yyyymmdd HH:mi') and sysdate
其中date為你要統(tǒng)計(jì)的字段名字
table_name為表的名字
to_char是一個(gè)日期函數(shù) to_char(sysdate,'yyyymmdd HH:mi') 為截取到分鐘,對(duì)應(yīng)的to_char(sysdate,'yyyymmdd HH')為截取到小時(shí)。to_char(sysdate,'yyyymm')為截取到月份,
希望對(duì)你有幫助。。。
分開取,前部分取幾點(diǎn)到幾點(diǎn),后一部分取月份
也就是前面一組條件取字段的時(shí)分秒,后面一組條件取字段的天或月份,再把兩個(gè)條件and一下。
假設(shè)我的時(shí)間字段是varchar2類型的。
是20110101 18:00:00類型的。
那么就是
substr(字段,10,2)8 and substr(字段,10,2)18 and substr(字段,5,2)=6
當(dāng)然我寫的就是大概意思,具體的你要自己斟酌。
SELECT (TIME1 - TIME2) * 34 * 60 FROM DUAL
這個(gè)是可樂所說(shuō)的
但是這個(gè)結(jié)果其實(shí)并不準(zhǔn)確
因?yàn)閮蓚€(gè)時(shí)間相減,是以一天為1個(gè)單位,得到分鐘的小數(shù)都是約數(shù)
那么這么相減得到的結(jié)果就有點(diǎn)奇怪了
比如
SELECT (TO_DATE('2003/12/14 13:31:54', 'YYYY/MM/DD HH24:MI:SS') - TO_DATE('2003/12/14 13:28:54', 'YYYY/MM/DD HH24:MI:SS')) * 34 * 60 FROM DUAL
結(jié)果很奇怪 4.25。
我覺得如果需要準(zhǔn)確的分鐘
我給你提供幾個(gè)函數(shù)吧,你自己考慮考慮怎么做
總不能什么東西都是現(xiàn)成的
對(duì)不?
TO_DATE('2003/12/14 13:28:54', 'YYYY/MM/DD HH24:MI:SS')
把字符串型轉(zhuǎn)化成日期類型
TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')
把日期類型轉(zhuǎn)化成字符串類型
當(dāng)然 也可以
TO_CHAR(TO_DATE('2003/12/14 13:28:54', 'YYYY/MM/DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
就可以把格式為 2003/12/14 13:28:54
轉(zhuǎn)化為 2003-12-14 13:28:54
當(dāng)然 也可以只取其中的年
TO_CHAR(SYSDATE, 'YYYY')
或者 月
TO_CHAR(SYSDATE, 'MM')
或者年和月
TO_CHAR(SYSDATE, 'YYYY-MM')
等等都可以
特別提醒一下轉(zhuǎn)化小時(shí)
TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')
表示24小時(shí)計(jì)時(shí)
TO_CHAR(SYSDATE, 'YYYY/MM/DD HH12:MI:SS')
表示12小時(shí)計(jì)時(shí)
當(dāng)然如果只取小時(shí)
TO_CHAR(SYSDATE, 'HH24')
TO_CHAR(SYSDATE, 'HH12')
也可以取年和日 TO_CHAR(SYSDATE, 'YYYY-DD')
不過(guò)這么取沒有什么實(shí)際意義
那么我們下一步 考慮取出單獨(dú)的一個(gè)月 或者分鐘 或者小時(shí)
假設(shè)取分鐘吧
TO_CHAR(SYSDATE, 'MI')
我們可以再利用一個(gè)函數(shù)轉(zhuǎn)化
那就是把分鐘的字符串轉(zhuǎn)化成數(shù)字類型
TO_NUMBER
比如 TO_NUMBER('123')
結(jié)果就是123
TO_NUMBER('123') - TO_NUMBER('100')
結(jié)果就是100
TO_NUMBER(TO_CHAR(SYSDATE, 'MI'))
得到的就是數(shù)據(jù)庫(kù)當(dāng)前時(shí)間的分鐘數(shù)
有了這些方法,如果確實(shí)需要在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)計(jì)算
那么自己綜合利用吧
累死我了,有問(wèn)題的話再說(shuō)吧