Oracle11g 在Oracle中插入具有特定日期和时间格式的值

Oracle11g 在Oracle中插入具有特定日期和时间格式的值,oracle11g,oracle10g,Oracle11g,Oracle10g,我尝试将值插入SURVEY.YSG表(用于插入查询) 错误报告: SQL错误:ORA-01843:不是有效月份 184300000-“不是有效月份” *原因: *行动: 下面是在SURVEY.YSG表中创建的4列,其中包含日期和时间戳 YSG_MSN_DTM - TIMESTAMP(6) NPR_DT - DATE YSG_VRFCTN_DTM - TIMESTAMP(6) PLS_DTM - TIMESTAMP(6) 尝试使用TO\u DATE()函数: TO_DATE('2011-0

我尝试将值插入SURVEY.YSG表(用于插入查询)

错误报告: SQL错误:ORA-01843:不是有效月份 184300000-“不是有效月份” *原因:
*行动:

下面是在
SURVEY.YSG
表中创建的4列,其中包含日期和时间戳

YSG_MSN_DTM - TIMESTAMP(6)

NPR_DT - DATE

YSG_VRFCTN_DTM - TIMESTAMP(6)

PLS_DTM - TIMESTAMP(6)
尝试使用
TO\u DATE()
函数:

TO_DATE('2011-08-11 13:34:36','YYYY-MM-DD HH24:MI:SS')  
得到如下输出:
11-AUG-11 01.34.36.000000000 PM.

预期产出:

专栏:
YSG\u MSN\u DTM
->
2011-08-11 13:34:36.000000
对于另一列中的
NPR\u DT
->
12/31/8888

在Oracle中是否有其他方法可以实现这一点

非常感谢你的帮助

谢谢

试试这个:

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',
        TO_TIMESTAMP ( '2011-08-11 13:34:36.000000',
                    'YYYY-MM-DD HH24:MI:SS.FF' ),
        '656002075',
        'STG HEALTH SYSTEM',
        'null',
        'OPLINKS4',
        'UNK',
        'UNK',
        'UNK',
        TO_DATE ( '12/31/8888',
                'MM/DD/YYYY' ),
        'UNK',
        'UNK',
        'UNK',
        'X',
        'UNK',
        'Y',
        TO_TIMESTAMP ( '8888-12-31 00:00:00.000000',
                    'YYYY-MM-DD HH24:MI:SS.FF' ),
        0,
        TO_TIMESTAMP ( '2011-07-20 12:00:00.000000',
                    'YYYY-MM-DD HH24:MI:SS.FF' ),
        0,
        0 );
试试这个:

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',
        TO_TIMESTAMP ( '2011-08-11 13:34:36.000000',
                    'YYYY-MM-DD HH24:MI:SS.FF' ),
        '656002075',
        'STG HEALTH SYSTEM',
        'null',
        'OPLINKS4',
        'UNK',
        'UNK',
        'UNK',
        TO_DATE ( '12/31/8888',
                'MM/DD/YYYY' ),
        'UNK',
        'UNK',
        'UNK',
        'X',
        'UNK',
        'Y',
        TO_TIMESTAMP ( '8888-12-31 00:00:00.000000',
                    'YYYY-MM-DD HH24:MI:SS.FF' ),
        0,
        TO_TIMESTAMP ( '2011-07-20 12:00:00.000000',
                    'YYYY-MM-DD HH24:MI:SS.FF' ),
        0,
        0 );

谢谢你的帮助!我也尝试过这个选项,输出:TIMESTAMP字段11-AUG-11 01.34.36.000000000 PM,日期字段31-DEC-88。我希望插入的类型与TERADATA DB中的类型完全相同。它正在从Teradata迁移到Oracle环境。请尝试更改会话的日期值。例如,ALTER SESSION SET NLS_DATE_FORMAT='yyyyy.MM.DD HH24:MI:SS';我使用了NLS_时间戳格式和NLS_日期格式来实现同样的效果。谢谢你的帮助:)谢谢你的帮助!我也尝试过这个选项,输出:TIMESTAMP字段11-AUG-11 01.34.36.000000000 PM,日期字段31-DEC-88。我希望插入的类型与TERADATA DB中的类型完全相同。它正在从Teradata迁移到Oracle环境。请尝试更改会话的日期值。例如,ALTER SESSION SET NLS_DATE_FORMAT='yyyyy.MM.DD HH24:MI:SS';我使用了NLS_TIMESTAMP_格式和NLS_DATE_格式来实现相同的功能。感谢您的帮助:)
DATE
TIMESTAMP
列没有任何内在格式。当您显示它们时,您提供了一种格式-如果您不提供格式,则当前会话的NLS设置将用于提供默认格式。同意这一点。谢谢<代码>日期和时间戳列没有任何固有格式。当您显示它们时,您提供了一种格式-如果您不提供格式,则当前会话的NLS设置将用于提供默认格式。同意这一点。谢谢!