如何正确的理解和解决 ORA-01843:not a valid month,ora-01843valid
今天码代码的时候遇到了这个问题,因为oracle用的比较少,所在查询了一下。
顿时傻眼,有很多的贴子说是因为nls_date_language的问题,还要改会话级的NLS_DATE_LANGUAGE设置为简体中文,还有些别的,等等。我当时就无语了,我觉得大部分楼主都是在自己玩玩oracle的吧,虽然也算是因素,但如果是在正经项目中,谁会让你去改这种东西?!
后来发现了正确的做法,如下:
to_date('2014-06-24 00:00:00','yyyy-mm-dd hh24:mi:ss')
描述不太清楚,大概了解,两种可能,
1、表A的日期格式都是yyyyMMdd,那你to_date(日期,'yyyyMMdd')要这样写,否则长度是不够的
2、如果在to_date(日期,'yyyyMMdd hh24miss')时候报valid 错误,说明你的日期格式不正确,比如年份、月份、天数不合法,如9999年13月32日,这肯定不对
另外建议你,在学习使用oracle的过程中,报的错误,直接说oracle的错误编号就行,
ORA-01843 not a valid month
存的时候转一下不就行了
to_date( to_char(your_col,'yyyy-mm-dd hh24:mi:ss') , 'yyyy-mm-dd hh24:mi:ss' )
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。