【发布时间】:2013-09-17 12:21:25
【问题描述】:
我尝试将值插入到 SURVEY.YSG 表中(在插入查询中使用)
INSERT INTO SURVEY.YSG(YSG_ID,YSG_MSN_DTM,TAX_ID,TAX_NM,TYPE_CD,USER_ID,
FRST_NM,LAST_NM,SHL_TXT,NPR_DT, PHONE_NBR,FAX_NBR,
EMAIL_ADRS_TXT,YSG_IMD,MDFD_ID,YSG_VRFCTN_CD,
YSG_VRFCTN_DTM,LOG_KEY,PLS_DTM,LOAD_KEY,UPDTD_LOAD_KEY )
VALUES ( '103','2011-08-11 13:34:36.000000','656002075',
'STG HEALTH SYSTEM','null','OPLINKS4','UNK','UNK','UNK',
'12/31/8888','UNK','UNK','UNK','X','UNK','Y','8888-12-31 00:00:00.000000',
0,'2011-07-20 12:00:00.000000',0,0)
错误报告: SQL 错误:ORA-01843:不是有效月份 01843. 00000 - “不是一个有效的月份” *原因:
*行动:
以下是SURVEY.YSG 表中使用日期和时间戳创建的 4 列。
YSG_MSN_DTM - TIMESTAMP(6)
NPR_DT - DATE
YSG_VRFCTN_DTM - TIMESTAMP(6)
PLS_DTM - TIMESTAMP(6)
用TO_DATE()函数试过:
TO_DATE('2011-08-11 13:34:36','YYYY-MM-DD HH24:MI:SS')
得到如下输出:11-AUG-11 01.34.36.000000000 PM.
预期输出:
列:YSG_MSN_DTM -> 2011-08-11 13:34:36.000000
以及另一列中的NPR_DT ->12/31/8888 列。
有没有其他方法可以在 Oracle 中实现这一点?
感谢您的任何帮助。
谢谢
【问题讨论】:
-
DATE和TIMESTAMP列没有任何内在格式。当您显示它们时,您提供了一种格式 - 如果您不提供任何格式,则当前会话的 NLS 设置用于提供默认格式。 -
同意。谢谢!