任何有帮助的人我在日期时间都不允许出现错误列!
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)
);
答案 0 :(得分:2)
您正在尝试使用Oracle中的SQL Server CONVERT()
function - Oracle CONVERT()
function从一个字符集转换为另一个字符集并且无法执行您想要的操作。
相反,您可以使用日期文字:
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
)
或者,如果要指定时间组件,则可以使用timestamp文字(如果这是您要存储的列的类型,Oracle将隐式转换为DATE
类型):
INSERT INTO MEMBERS_CONTRIBUTIONS (
CONTRIBUTION_TYPE,
FROM_DATE,
TO_DATE,
ADDED_PERIOD_IN_MONTHS,
MEMBER_AMOUNT,
THE_CURRENCY,
MATURITY_DATE
) VALUES (
4,
TIMESTAMP '2016-06-01 00:00:00',
TIMESTAMP '2016-06-01 00:00:00',
0,
2500,
'OMR',
TIMESTAMP '2016-06-30 00:00:00'
);
或者您可以使用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' )
);
答案 1 :(得分:0)