栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

遇到SQL错误:ORA-01843:无效的月份

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

遇到SQL错误:ORA-01843:无效的月份

'04/04/2012 13:35 PM'
不是日期,而是一个字符串。

TO_DATE( string_value, format_mask)
DATE
使用
NLS_DATE_FORMAT
session参数的值作为格式掩码将Oracle非日期文字插入到列中时,Oracle将对其进行隐式处理(
注意:这是一个session参数,属于客户端;它不是全局设置
)。如果非日期文字与该格式匹配,则它将起作用(如果不匹配,则它将不起作用)-但是,如果将
NLS_DATE_FORMAT
其更改,则它将立即中断(将其作为代码进行调试非常麻烦)该代码无法正常运行,但没有人会更改代码)。

您可以

NLS_DATE_FORMAT
通过查询找到当前信息:

SELECt VALUEFROM   NLS_SESSION_PARAMETERSWHERe  PARAMETER = 'NLS_DATE_FORMAT';

最好显式地使用

TO_DATE()
正确的格式掩码或使用ANSI / ISO日期文字(即
DATE '2012-04-04'
TIMESTAMP'2012-04-04 13:35'
)。

你可以做:

INSERT INTO STORE ( id, opening_time )  VALUES( 1, TO_DATE( '04/04/2012 13:35', 'DD/MM/YYYY HH24:MI' );

(您不需要,

AM/PM
因为小时部分已经在24小时制上了)

或者

INSERT INTO STORE ( id, opening_time )  VALUES( 1, TIMESTAMP '2012-04-04 13:35:00' );

(使用Oracle将隐式转换为日期的ANSI / ISO时间戳文字)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号