java oracle to date_用TRUNC和TO_DATE截斷oracle中的java格式化日期()

當談到Oracle時,我並不是一個特別優秀的人,因爲我對數據庫的大部分經驗都來自SQL服務器。用TRUNC和TO_DATE截斷oracle中的java格式化日期()

我有一個java日期,我想轉換爲只是一個簡單的日期(不包括時間或時區)在oracle中,所以我可以使用它與自定義mybatis SQL語句,將簡單地搜索是否日期與用戶界面上輸入的日期相同。我的模擬oracle查詢鏡像MyBatis中發生的事情在下面寫爲我的失敗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');

它失敗,出現錯誤: ORA-01858:一個非數字字符被發現,其中一個數字預期。

我在表的日期被存儲在一個DATE數據格式,我期待產生一個WHERE子句,使得

WHERE TRUNC(s.logged_date) = some date in the year

返回行。

使用WHERE子句,我正在尋找日期等價而不考慮時間。 s.logged_date中的值的格式是在DATE數據類型列中的DD-MON-YYYY中。

我真的希望你能夠幫助我,因爲我已經使用過任何我必須上手的書,並且在互聯網上搜索了相當長的一段時間,試圖產生一個正確的WHERE子句。

感謝

+0

「表中的我的日期以DD-MON-YYYY格式存儲」 - 他們真的嗎?如果是這樣,*爲什麼*他們是這樣存儲的?你爲什麼不把它們存儲在DATE字段中,這是一個日期,沒有任何固有的格式?您需要區分真實數據以及它如何在SQL工具中進行格式化。 –

+0

除非它有時間元素,否則不需要「trunc」'logged_date'值;你可以用'to_char(logged_date,'DD-MON-YYYY HH24:MI:SS')'來檢查。你的'to_date'很明顯使用了一個與字符串值不相似的格式掩碼,所以不會令人驚訝的失敗;它試圖將'我們'當作一天的數字,從DD'開始。你是否必須處理參數值中的不同時區? –

+0

@JonSkeet我對這一部分表示歉意。我想說的是,它是作爲DATE數據類型存儲的,數據在oracle中顯示爲格式DD-MON-YYYY(可能是默認值)。 我會爲此編輯我的帖子。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值