SQL-DML: Falsches Datum-Wert (MySQL)
Erstellte ich eine Tabelle in meiner Datenbank:
CREATE TABLE official_receipt(
student_no INT UNSIGNED,
academic_year CHAR(8),
trimester ENUM('1', '2', '3'),
or_no MEDIUMINT UNSIGNED,
issue_date DATE NOT NULL,
received_from VARCHAR(255) NOT NULL,
amount_of DECIMAL(8,2) NOT NULL,
issued_by VARCHAR(255),
doc_type ENUM('FULL', 'DOWN', 'INST') NOT NULL,
form_of_payment ENUM('CASH', 'INST') NOT NULL,
PRIMARY KEY (student_no, academic_year, trimester, or_no)
);
Fügte ich einige Werte:
INSERT INTO official_receipt(student_no , academic_year, trimester, or_no, issue_date, received_from, amount_of, issued_by, doc_type, form_of_payment)
VALUES
(201201121, 'AY201314', '1', 029940, 2013-05-21, 'NAME', 20000.00, NULL, 'DOWN', 'INST'),
(201201121, 'AY201314', '1', 029944, 2013-07-23, 'NAME', 8000.00, NULL, 'INST', 'INST'),
(201201101, 'AY201314', '1', 029941, 2013-05-21, 'NAME', 56650.00, NULL, 'FULL', 'CASH'),
(201201037, 'AY201314', '1', 029942, 2013-05-21, 'NAME', 56650.00, NULL, 'FULL', 'CASH'),
(201201142, 'AY201314', '1', 029943, 2013-05-21, 'NAME', 63800.00, NULL, 'FULL', 'CASH');
Bin ich immer diese Fehlermeldung:
Error Code: 1292. Incorrect date value: '1987' for column 'issue_date' at row 1
Ich bin ziemlich ratlos, weil ich schon folgte der YYYY-MM-DD format. Keine Hilfe?
InformationsquelleAutor | 2013-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dokumentiert unter Datum und Zeit Literale:
Daher der Ausdruck
2013-05-21
ist nicht eine gültige MySQL-Datum-literal (es ist in der Tat ein arithmetischer Ausdruck, der aus zwei Subtraktionen: es ergibt sich in der integer -1987
). Im Einklang mit einem der literalen Formate oben beschrieben, müssen Sie entweder Ihr Angebot Datum-literal als string und/oder entfernen Sie die Trennzeichen an.Es ist kaum erkennbar, Sie sprechen über fehlende Zitate hier.
Das ist, weil ich nicht bin. Es ist ein perfekt gültiges literal-format für Datumsangaben, die nicht erfordern Anführungszeichen: in diesem Fall müssen lediglich entfernen Sie die Trennzeichen an.
InformationsquelleAutor eggyal
Ihnen fehlt, mit
'
Anführungszeichenissue_date
Werte für meine test-es fügt die Datensätze erfolgreichVersuchen, diese
Hier ist Ihre Geige
InformationsquelleAutor M Khalid Junaid
Müssen Sie legen Sie die Datums-Literale in Anführungszeichen. Die Fehlermeldung sagt
1987
weil die nicht börsennotierten Datum gelesen wird, als Ausdruck2013 minus 5 minus 21
, die1987
.Ihre Termine können wie folgt sein:
'2013-05-21'
oder'20130521'
oder ein paar andere Formate in der Dokumentation.InformationsquelleAutor Ed Gibbs