SQL DML: pas de date de valeur (MySQL)
J'ai créé une table dans ma base de données:
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)
);
J'ai inséré quelques valeurs:
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');
J'obtiens cette erreur:
Error Code: 1292. Incorrect date value: '1987' for column 'issue_date' at row 1
Je suis assez perplexe car j'ai déjà suivi le format AAAA-MM-JJ. Toute aide?
Vous devez vous connecter pour publier un commentaire.
Comme indiqué sous La Date et l'Heure Littéraux:
Par conséquent, l'expression
2013-05-21
n'est pas valide MySQL date littéral (c'est en fait une expression arithmétique, composé de deux soustractions: il résulte de l'entier1987
). Afin de se conformer à l'un des formats de littéraux détaillé ci-dessus, vous devez indiquer votre date littéral comme une chaîne de caractères et/ou supprimer les délimiteurs.Vous sont manquants avec
'
des guillemets simples autour de laissue_date
valeurs pour mon test il insère des enregistrements avec succèsEssayer cette
Voici votre violon
Vous avez besoin de mettre la date littérale entre guillemets. Le message d'erreur dit
1987
parce que le non cotées date est en cours de lecture comme l'expression2013 minus 5 minus 21
, qui est1987
.Vos dates de séjour peut être comme ceci:
'2013-05-21'
ou'20130521'
ou un couple d'autres formats décrits dans le la documentation.