亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ORA-01830: 日期格式圖片在轉換整個輸入字符串之前結束 - JAVA / Oracle

ORA-01830: 日期格式圖片在轉換整個輸入字符串之前結束 - JAVA / Oracle

喵喵時光機 2022-06-04 09:25:52
我正在使用以下查詢將我的日期輸入字符串MM-dd-YYYY格式轉換為格式:SQL timestampDateFormat format = new SimpleDateFormat("MM-dd-YYYY", Locale.ENGLISH);java.util.Date endDate = format.parse(myEndDateString);endDateTimestamp = Calendar.getInstance();endDateTimestamp.setTime(endDate);endDateTimestamp.set(Calendar.MILLISECOND, 0);時間戳現在已按預期格式更新。30-DEC-18 12.00.00.000000000 AM我的數據庫中有幾行像這樣更新?,F在,當我希望將來使用以下方法獲取日期時:select * from my_records where end_dt > sysdate;我得到一個例外:ORA-01830: 日期格式圖片在轉換整個輸入字符串之前結束。有沒有其他方法可以將字符串更新為時間戳,或者是否應該修改查詢?更新:我的表列end_dt在TIMESTAMP類型中。
查看完整描述

1 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

如果END_DT列的數據類型是DATE,那么您的查詢將起作用。看來不是,而是VARCHAR2。如果是這樣,您必須TO_DATE使用適當的格式掩碼對其應用功能才能使其正常工作。例如:


select * From my_records

where to_date(substr(end_dt, 1, 9), 'dd-mon-yy') > sysdate

30-DEC-18 12.00.00.000000000 AM

---------

this makes SUBSTR(end_dt, 1, 9), and its format mask is dd-mon-yy

[編輯]


你說它的數據類型是時間戳。如果是,那么您的查詢將起作用??纯催@個例子:


SQL> create table test (end_dt timestamp);


Table created.


SQL> insert into test values (systimestamp);


1 row created.


SQL> select * From test where end_dt < sysdate;


END_DT

----------------------------------------------------

02.02.19 20:42:08,375000


SQL>

你能驗證它真的是TIMESTAMP(不是看起來像,而是真的是)。通過運行 DESC 命令來做到這一點:


SQL> desc test

 Name                                      Null?    Type

 ----------------------------------------- -------- ---------------

 END_DT                                             TIMESTAMP(6)


SQL>


查看完整回答
反對 回復 2022-06-04
  • 1 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號