当我尝试在Oracle上运行代码时会出现此错误,但我不确定原因。我认为这与日期格式有关,任何人都可以帮忙吗?
INSERT INTO Subscription (Gym_ID, Member_ID, Current_or_Old_Susbcription, Susbcription_StartDate, Subscription_EndDate, Susbcription_Cost)
VALUES (1, 2, 'Current', '01/01/2016', '31/12/2016', '480');
答案 0 :(得分:2)
使用date
关键字和ISO标准格式:
INSERT INTO Subscription (Gym_ID, Member_ID, Current_or_Old_Subscription, Subscription_StartDate, Subscription_EndDate, Subscription_Cost)
VALUES (1, 2, 'Current', DATE '2016-01-01', DATE '2016-12-01', '480');
这使您与服务器上的任何特殊设置隔离开来。
答案 1 :(得分:2)
' 01/01/2016'和' 31/12/2016'字符串不是日期。所以DBMS必须转换。您没有使用转换功能(to_date
),因此DBMS必须使用默认设置。可能是它认为31而不是12是月。请改用日期文字:
INSERT INTO Subscription (Gym_ID, Member_ID, Current_or_Old_Subscription,
Subscription_StartDate, Subscription_EndDate, Subscription_Cost)
VALUES (1, 2, 'Current', date'2016-01-01', date'2016-12-31', '480');