日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

请写出sfr和sbit的语句格式_最新最全 Oracle ORA-01861: 文字与格式字符串不匹配

發(fā)布時間:2025/4/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 请写出sfr和sbit的语句格式_最新最全 Oracle ORA-01861: 文字与格式字符串不匹配 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接上篇,上一篇講到,要將oracle表中已經(jīng)存放的時間查詢出來后再加8小時.然后再來使用所得到的結(jié)果.當(dāng)時測試可行

但是第二天打開數(shù)據(jù)庫再一執(zhí)行,就會發(fā)現(xiàn)數(shù)據(jù)庫報錯,昨天可以完美執(zhí)行的語句,今天就是一條報錯的語句了.

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’)

此時會報錯:ORA-30081: 對日期時間/間隔算法無效的數(shù)據(jù)類型

這樣也不對,因為我如果直接將 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?

答,因為P.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ǔ)一定要扎實!

3.在總結(jié)1中提到"TO_date(P.createdate,‘YYYY-MM-DD hh24:mi:ss’)+numtodsinterval(8,‘hour’)“也是正確的,也是錯誤的原因呢,其實是有一個前提條件的.

首先,在昨天第一次寫出這條語句的時候,我這樣寫是可以查出來結(jié)果的.但是同樣的語句,今天再執(zhí)行就會報錯.所以說這種寫法既是對的,同時也是錯的.

那么這個前提條件是什么呢?

不知道新手朋友對這條語句是否熟悉:

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’)"這種寫法時,是因為在這之前.我修該了oracle的session.

但是今天再執(zhí)行同樣的語句之前我沒有執(zhí)行修改session的語句,所以昨天執(zhí)行OK的語句今天就報錯了.

這就是剛才提到的前提條件,但是至于為什么會這樣,截止到文章發(fā)布,我還沒有搞明白為什么.如果有知道原因的朋友還請不吝賜教.

如果我搞明白了原因,也會及時更新.

貼出來,對自己是筆記,對第一次遇到的朋友是幫助.

共同學(xué)習(xí),共同進(jìn)步吧!加油!!!

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的请写出sfr和sbit的语句格式_最新最全 Oracle ORA-01861: 文字与格式字符串不匹配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。