Sql Insert语句错误,ORA-00984:此处不允许列
任何我得到的帮助的家伙错误列不允许在这里的日期时间Sql Insert语句错误,ORA-00984:此处不允许列,sql,oracle,Sql,Oracle,任何我得到的帮助的家伙错误列不允许在这里的日期时间 INSERT INTO MEMBERS_CONTRIBUTIONS ( CONTRIBUTION_TYPE, FROM_DATE, TO_DATE, ADDED_PERIOD_IN_MONTHS, MEMBER_AMOUNT, THE_CURRENCY, MATURITY_DATE ) VALUES ( 4, convert(datetime, '6/1/2016 12:0
INSERT INTO MEMBERS_CONTRIBUTIONS (
CONTRIBUTION_TYPE,
FROM_DATE,
TO_DATE,
ADDED_PERIOD_IN_MONTHS,
MEMBER_AMOUNT,
THE_CURRENCY,
MATURITY_DATE
) VALUES (
4,
convert(datetime, '6/1/2016 12:00:00 AM', 5),
convert(datetime, '6/1/2016 12:00:00 AM', 5),
0,
2500,
'OMR',
convert(datetime, '6/30/2016 12:00:00 AM', 5)
);
您试图在Oracle中使用-从一个字符集转换为另一个字符集,但不执行您想要的操作
相反,您可以使用日期文字:
INSERT INTO MEMBERS_CONTRIBUTIONS (
CONTRIBUTION_TYPE,
FROM_DATE,
TO_DATE,
ADDED_PERIOD_IN_MONTHS,
MEMBER_AMOUNT,
THE_CURRENCY,
MATURITY_DATE
) VALUES (
4,
DATE '2016-06-01',
DATE '2016-06-01',
0,
2500,
'OMR',
DATE '2016-06-30'
);
在Oracle中,所有的DATE
类型都有一个日期和时间组件-日期文字语法只会将时间组件设置为00:00:00
(或在12小时时钟中设置为12:00:00 AM
)
或者,如果要指定时间组件,则可以使用时间戳文字(如果存储时间的列是DATE
类型,Oracle将隐式转换为该类型):
或者,您可以使用to_date()
函数将字符串文字显式转换为日期:
INSERT INTO MEMBERS_CONTRIBUTIONS (
CONTRIBUTION_TYPE,
FROM_DATE,
TO_DATE,
ADDED_PERIOD_IN_MONTHS,
MEMBER_AMOUNT,
THE_CURRENCY,
MATURITY_DATE
) VALUES (
4,
TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
0,
2500,
'OMR',
TO_DATE( '6/30/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' )
);
表达式
convert(datetime,'6/1/2016 12:00:00 AM',5)
调用名为datetime
的列。但是insert语句根本不提供涉及任何列的上下文,因此查询解析器无法理解datetime
。这就是你的错误
我猜您正在尝试将日期/时间常量(从您的示例中可以是2016年6月1日或2016年1月6日)放入数据类型中。您需要使用该函数将字符串转换为该格式。我不打算建议使用特定的调用形式,因为我不知道字符串的格式。您想用
转换做什么?在oracle中,它用于将字符串从一个字符集转换为另一个字符集。我想用完整格式dd/mm/yyyy ss:mm:hh插入日期看看to_date函数try to_char(sysdate,'mm/dd/yyyyy hh24:mi:ss')@AvrajitRoy:no.to_char()
将日期
转换为变量字符
在这种情况下,需要转换为日期()
将变量字符
转换为(实)日期
INSERT INTO MEMBERS_CONTRIBUTIONS (
CONTRIBUTION_TYPE,
FROM_DATE,
TO_DATE,
ADDED_PERIOD_IN_MONTHS,
MEMBER_AMOUNT,
THE_CURRENCY,
MATURITY_DATE
) VALUES (
4,
TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
TO_DATE( '6/1/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' ),
0,
2500,
'OMR',
TO_DATE( '6/30/2016 12:00:00 AM', 'MM/DD/YYYY HH12:MI:SS AM' )
);