使用函數(shù) add_months
目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、青原網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
add_months(time,months) months為整數(shù),正數(shù)時(shí)是加月,負(fù)數(shù)時(shí)為減月。
UPDATE TABLE ASET LOCALTIME=add_months(LocalTime, 1)
select sysdate+日 from dual
select add_months(sysdate,月) from dual
select add_months(sysdate,12*年) from dual
這個(gè)問(wèn)題在項(xiàng)目中是一個(gè)很重要的細(xì)節(jié),具體有兩種處理方式,主要取決于這個(gè)表是否需要進(jìn)行數(shù)據(jù)交換,以及這個(gè)時(shí)間字段如何使用,具體舉兩個(gè)例子吧:
一、使用varchar2型
1、如果這張表對(duì)時(shí)間的精度要求不高,比如只是到日。
2、該表需要經(jīng)常與其他表進(jìn)行數(shù)據(jù)交互,比較,查詢,并且其他表的時(shí)間精度不高于日(比如日、月、季度)
3、存儲(chǔ)大量數(shù)據(jù)用于統(tǒng)計(jì)分析,如本期、同期,累計(jì)值等。
存儲(chǔ)的時(shí)候需要格式化,例如:to_char(sysdate,'yyyy-mm-dd');
二、使用date型。
1、對(duì)時(shí)間精度要求較高,比如到秒;
2、需要與其他表做數(shù)據(jù)交互,更偏重于”準(zhǔn)實(shí)時(shí)“交互,比如每15秒同步一次數(shù)據(jù);
3、不用于統(tǒng)計(jì)分析(這點(diǎn)很重要,需要統(tǒng)計(jì)分析的話,強(qiáng)烈不建議使用date型);
4、該表數(shù)據(jù)不做物理刪除(刪除時(shí)只更新標(biāo)志位和刪除時(shí)間);
以上我這幾年的實(shí)際項(xiàng)目經(jīng)驗(yàn),希望可以幫到你。
這個(gè)好辦,你要不然就在這個(gè)字段寫個(gè)函數(shù),返回值就是:convert(varchar(20),'08:30:00',108)這樣就可以了,這樣存在這個(gè)字段的值就只會(huì)有“時(shí)分秒”了!
excel自帶的簡(jiǎn)單/完美的公式:
假設(shè)小日期在a1,大日期在a2,用公式
=datedif(a1,a2,"y")"年"datedif(a1,a2,"ym")"月"datedif(a1,a2,"md")"天"
就可以了。
select yhm,sum(to_date(out,'yyyy-MM-dd HH24:mi:ss') -to_date(login,'yyyy-MM-dd HH24:mi:ss')) from gyh
group by yhm;
---計(jì)算出在線天數(shù)。如果login和out僅僅記錄時(shí)間,不含日期,則自己做個(gè)轉(zhuǎn)化即可。
---關(guān)于要顯示為:日/時(shí)/分,為了簡(jiǎn)單,將sum(....)設(shè)定為A,則表達(dá)式如下
select yhm,round(A)||'日'||(round(A*24)-round(A)*24)||'時(shí)'||round(A*24*60-round(A*24*60)-round(A*24)*60)||'分' from gyh group by yhm;