请写出sfr和sbit的语句格式_最新最全 Oracle ORA-01861: 文字与格式字符串不匹配
接上篇,上一篇講到,要將oracle表中已經(jīng)存放的時間查詢出來后再加8小時.然后再來使用所得到的結(jié)果.當(dāng)時測試可行
但是第二天打開數(shù)據(jù)庫再一執(zhí)行,就會發(fā)現(xiàn)數(shù)據(jù)庫報(bào)錯,昨天可以完美執(zhí)行的語句,今天就是一條報(bào)錯的語句了.
TO_date(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’)
What happened?
沒辦法,只能百度.最終找到一篇文章以解決此問題.
請往這里看:https://blog.csdn.net/qq_36798713/article/details/91044461
當(dāng)然,我的情況與這篇作者的情況又有所不同.
原因很簡單,前者是insert.而我是select.
我的表中存放時間的字段:createdate 數(shù)據(jù)類型為:DATE
TO_char(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’)
此時會報(bào)錯:ORA-30081: 對日期時間/間隔算法無效的數(shù)據(jù)類型
這樣也不對,因?yàn)槲胰绻苯訉?P.createdate 做to_char處理的話,那么后面的操作就沒有意義了.顯然是一個很低級的錯誤.
繼續(xù)修改語句:TO_char((P.createdate+numtodsinterval(8,‘hour’)),‘YYYY-MM-DD hh24:mi:ss’)
OK!查出結(jié)果了!
總結(jié)時刻.
這里倒敘分析問題
1.為什么 TO_char((P.createdate+numtodsinterval(8,‘hour’)),‘YYYY-MM-DD hh24:mi:ss’) 執(zhí)行OK?
答,因?yàn)镻.createdate本身即為 DATE 類型,所以第一次寫的 TO_date(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’)是不正確的,(這個地方也不能說是不正確,但是我自己目前還沒搞明白,之所以說這個地方也是正確的原因繼續(xù)瀏覽)
2.犯了很低級的錯誤 TO_char(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’) 一個是char,一個是date怎么可能相加呢?(手動臉紅)之所以寫出來,也是為了提醒剛接觸編程的朋友,基礎(chǔ)一定要扎實(shí)!
3.在總結(jié)1中提到"TO_date(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’)“也是正確的,也是錯誤的原因呢,其實(shí)是有一個前提條件的.
首先,在昨天第一次寫出這條語句的時候,我這樣寫是可以查出來結(jié)果的.但是同樣的語句,今天再執(zhí)行就會報(bào)錯.所以說這種寫法既是對的,同時也是錯的.
那么這個前提條件是什么呢?
不知道新手朋友對這條語句是否熟悉:
alter session set nls_date_format=‘YYYY/MM/DD HH24:MI:SS’;
這是修改oracle session的.作用是將時間格式修改為指定的日期格式:“YYYY/MM/DD HH24:MI:SS”,同時,我的oracle默認(rèn)的日期格式是"14-10月-20”
而昨天,我執(zhí)行"TO_date(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’)"這種寫法時,是因?yàn)樵谶@之前.我修該了oracle的session.
但是今天再執(zhí)行同樣的語句之前我沒有執(zhí)行修改session的語句,所以昨天執(zhí)行OK的語句今天就報(bào)錯了.
這就是剛才提到的前提條件,但是至于為什么會這樣,截止到文章發(fā)布,我還沒有搞明白為什么.如果有知道原因的朋友還請不吝賜教.
如果我搞明白了原因,也會及時更新.
貼出來,對自己是筆記,對第一次遇到的朋友是幫助.
共同學(xué)習(xí),共同進(jìn)步吧!加油!!!
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的请写出sfr和sbit的语句格式_最新最全 Oracle ORA-01861: 文字与格式字符串不匹配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12无法使用otg_ios设备该如何选择
- 下一篇: 可编程led灯带原理_88张图搞定层板灯