java oracle to date_用TRUNC和TO_DATE截斷oracle中的java格式化日期()
當(dāng)談到Oracle時,我並不是一個特別優(yōu)秀的人,因爲(wèi)我對數(shù)據(jù)庫的大部分經(jīng)驗(yàn)都來自SQL服務(wù)器。用TRUNC和TO_DATE截斷oracle中的java格式化日期()
我有一個java日期,我想轉(zhuǎn)換爲(wèi)只是一個簡單的日期(不包括時間或時區(qū))在oracle中,所以我可以使用它與自定義mybatis SQL語句,將簡單地搜索是否日期與用戶界面上輸入的日期相同。我的模擬oracle查詢鏡像MyBatis中發(fā)生的事情在下面寫爲(wèi)我的失敗WHERE子句。
我的日期以'Wed Jun 19 00:00:00 BST 2013'的格式輸入Oracle,不幸的是我沒有很多靈活性。
我的失敗WHERE子句是這樣的:
where TRUNC(s.logged_date) = to_date('Wed Jun 19 00:00:00 BST 2013', 'DD-MON-YYYY');
它失敗,出現(xiàn)錯誤: ORA-01858:一個非數(shù)字字符被發(fā)現(xiàn),其中一個數(shù)字預(yù)期。
我在表的日期被存儲在一個DATE數(shù)據(jù)格式,我期待產(chǎn)生一個WHERE子句,使得
WHERE TRUNC(s.logged_date) = some date in the year
返回行。
使用WHERE子句,我正在尋找日期等價而不考慮時間。 s.logged_date中的值的格式是在DATE數(shù)據(jù)類型列中的DD-MON-YYYY中。
我真的希望你能夠幫助我,因爲(wèi)我已經(jīng)使用過任何我必須上手的書,並且在互聯(lián)網(wǎng)上搜索了相當(dāng)長的一段時間,試圖產(chǎn)生一個正確的WHERE子句。
感謝
+0
「表中的我的日期以DD-MON-YYYY格式存儲」 - 他們真的嗎?如果是這樣,*爲(wèi)什麼*他們是這樣存儲的?你爲(wèi)什麼不把它們存儲在DATE字段中,這是一個日期,沒有任何固有的格式?您需要區(qū)分真實(shí)數(shù)據(jù)以及它如何在SQL工具中進(jìn)行格式化。 –
+0
除非它有時間元素,否則不需要「trunc」'logged_date'值;你可以用'to_char(logged_date,'DD-MON-YYYY HH24:MI:SS')'來檢查。你的'to_date'很明顯使用了一個與字符串值不相似的格式掩碼,所以不會令人驚訝的失敗;它試圖將'我們'當(dāng)作一天的數(shù)字,從DD'開始。你是否必須處理參數(shù)值中的不同時區(qū)? –
+0
@JonSkeet我對這一部分表示歉意。我想說的是,它是作爲(wèi)DATE數(shù)據(jù)類型存儲的,數(shù)據(jù)在oracle中顯示爲(wèi)格式DD-MON-YYYY(可能是默認(rèn)值)。 我會爲(wèi)此編輯我的帖子。 –
總結(jié)
以上是生活随笔為你收集整理的java oracle to date_用TRUNC和TO_DATE截斷oracle中的java格式化日期()的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ibm v3700添加硬盘_机 · 科普
- 下一篇: android图片闪动动画,androi