select * from xx where datediff(week , getdate() , datename(yy,getdate()) + right(convert(varchar(10),birthday,120),6)) = 0
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比湖南網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式湖南網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋湖南地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
select * from info where to_date(birthdate,'YYYY-MM-DD') between sysdate and sysdate+7;
to_date(birthdate,'YYYY-MM-DD')
里邊的'YYYY-MM-DD' 取決于你字符型數(shù)據(jù)的格式
如果是20100729 那么你就要改成'YYYYMMDD',其他格式你也照著改就行
這個辦法很多,如果是比較精確的可以用month_between函數(shù),然后除以12,最后在trunc這樣就能得到具體的年齡了。
比如trunc(month_between(sysdate,時間類型的生日字段)/12)
個人感覺這個精確一些,能精確到天,只要還沒過生日,那么就不會加一歲。
當然二者直接相減trunc((sysdate-時間類型的生日字段)/365)也可以。
sysdate-時間類型的生日字段,這么相減默認出現(xiàn)的是相差的天數(shù),所以除以365。這個也可以,不過有些年是366天,不過因為366天的年分比較少,所以基本上不會相差很多。只是會出現(xiàn),“提前”的情況。不過80年最多才21天(大概是這樣,我沒細算,就算四年一次),所以對實際影響不是特別大。如果要求準確那么還是上面的靠譜一些。
用函數(shù)取出字段年,然后用現(xiàn)在的年相減也可以。這個就是一個大概(個人認為更加不靠譜),比如一個人2050年12月30日出生,現(xiàn)在是2055年后的1月1號,那么按照年來說就是5,但是其實才4歲多一點,所以年這個只是一個大概的,不會十分準確。
select floor(MONTHS_BETWEEN(sysdate,date'2000-1-1')/12) from dual
把12后面的那個1去掉就好了
select to_date(substr('XXXXXXXXXXXXXXXXX',7,8),'YYYYMMDD') from dual
XXXXXXXXXXXXXXXXX 為身份證號碼
網(wǎng)頁題目:oracle怎么查詢生日 oracle生日算年齡
當前URL:http://aaarwkj.com/article32/doooesc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、軟件開發(fā)、手機網(wǎng)站建設、Google、定制網(wǎng)站、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)