SQL "not a valid month"
As @Jody also mentioned,
You can change the default for your session by executing this code once before INSERT
:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-YYYY';
You may alter the format in any order you like.
Source: dba-oracle.com
You can use the date
keyword to specify an ANSI-standard date string:
INSERT INTO Reserves VALUES(22, 101, date '1998-01-01');
In this case, the format is YYYY-MM-DD, or January 1, 1998.
It's not entirely clear which you wanted, so you could try:
For month-day-year format:
INSERT INTO Reserves VALUES(22, 101, TO_DATE('01-01-1998','MM-DD-YYYY'));
For day-month-year format:
INSERT INTO Reserves VALUES(22, 101, TO_DATE('01-01-1998','DD-MM-YYYY'));
Also, recommended reading: Oracle functions: TO_DATE