這篇文章主要介紹Oracle使用to_date()格式化日期會(huì)遇到什么坑,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司提供高防服務(wù)器租用、云服務(wù)器、香港服務(wù)器、鄭州服務(wù)器托管等
調(diào)整報(bào)表檢索條件的時(shí)候遇到to_date()格式化日期的問題,明細(xì)如下:
1.總數(shù)據(jù) 159條
select * from daily_file_information;
2.查詢每月數(shù)據(jù) 3月-139條 4月-16條 5月-4條
select to_char(dfi_create_time,'yyyy-mm'),count(1) from daily_file_information group by to_char(dfi_create_time,'yyyy-mm');
3.第一種查詢方式 【...between...and...】
SQL1:結(jié)果159條
select count(1) from daily_file_information where 1=1 and to_char(dfi_create_time,'yyyy-mm') between '2020-03' and '2020-05' ;
SQL2:結(jié)果155條
select count(1) from daily_file_information where 1=1 and dfi_create_time between to_date('2020-03','yyyy-mm') and to_date('2020-05','yyyy-mm') ;
4.第二種查詢方式 【...大于等于...小于等于...】
SQL3:結(jié)果159條
select count(1) from daily_file_information where 1=1 and to_char(dfi_create_time,'yyyy-mm') >= '2020-03' and to_char(dfi_create_time,'yyyy-mm') <= '2020-05' ;
?
SQL4:結(jié)果155條
select count(1) from daily_file_information where 1=1 and dfi_create_time >= to_date('2020-03','yyyy-mm') and dfi_create_time <= to_date('2020-05','yyyy-mm') ;
5.差異數(shù)據(jù):to_date()格式化4條5月份數(shù)據(jù)
to_date('2020-05') 結(jié)果為:2020/05/01
結(jié)論:
經(jīng)過幾個(gè)SQL的查詢方式對(duì)比發(fā)現(xiàn)以to_date()轉(zhuǎn)換數(shù)據(jù)查詢的結(jié)果可能與預(yù)期結(jié)果數(shù)據(jù)不一致。
一般情況下在做類似時(shí)間過濾的時(shí)候我還是比較喜歡用to_char()的方式,根據(jù)這幾個(gè)查詢的結(jié)論而言還是建議大家慎用to_date()這個(gè)函數(shù)。
以上是“Oracle使用to_date()格式化日期會(huì)遇到什么坑”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!