資料庫報ORA-01839的錯誤

來源:互聯網
上載者:User

資料庫報ORA-01839的錯誤

【問題描述】ZCGL資料庫在運行SQL語句的時候報:ORA-01839 指定月份的日期無效

詳細的SQL語句簡化如下:

select *

from table_name

where to_date(a.yc_date,'yyyy-mm-dd')-sysdate>1

【問題的原因】ORA-01839表明z_yc_date的結果集的日期有不符合相應的日期標準,常見的有

select to_date('2015/2/31','yyyy/mm/dd')  from dual;

因為2月沒有31號,所以就會報ORA-01839的錯誤;

【解決方案】針對這個錯誤問題有兩個解決方案:

1、找出來源資料中,不符合規範的日期(已把結果集匯出但並沒有發現很明顯的錯誤);

2、改寫相應的SQL語句,改寫如下

select *  from table_name

where ya.c_date>=to_char(sysdate,'yyyy-mm-dd'))  #通過字元型去比較

【總結】以上的問題其實可以在建表的時候就進行規避,建議是用來存放時間日期的列,建議在建立表的時候直接設定該列的類型為date,對於後續的管理和效能都是有很大的好處;

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.