web-dev-qa-db-fra.com

Erreur lors de l'insertion de la date - Valeur de date incorrecte:

J'ai une colonne appelée today et le type est DATE.

Lorsque j'essaie d'ajouter la date au format '07-25-2012', l'erreur suivante apparaît:

Impossible d'exécuter la requête: valeur de date incorrecte: '07 -25-2012 'pour la colonne

19
Illep

Comme MySql accepte la date au format y-m-d dans la colonne de type date, vous devez utiliser la fonction STR_TO_DATE pour convertir la date au format aaaa-mm-jj afin de l'insérer de la manière suivante:

INSERT INTO table_name(today) 
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y'));  

De même, si vous voulez sélectionner la date dans un format différent du format Mysql, vous devriez essayer la fonction DATE_FORMAT

SELECT DATE_FORMAT(today, '%m-%d-%y') from table_name; 
23
Akash KC

Généralement, mysql utilise ce format de date 'Y-m-d H: i: s'

1
aserwin

Vous devez convertir la date en AAAA-MM-JJ afin de l'insérer en tant que date MySQL en utilisant la configuration par défaut.

Une façon de le faire est STR_TO_DATE() :

insert into your_table (...)
values (...,str_to_date('07-25-2012','%m-%d-%Y'),...);
1
Ike Walker

C'est le format de date

Le type DATE est utilisé pour les valeurs avec une partie date mais aucune partie heure . MySQL récupère et affiche les valeurs DATE au format 'AAAA-MM-JJ'. Le la plage prise en charge va de «1000-01-01» à «9999-12-31».

Pourquoi insérez-vous le format '07 -25-2012 'alors que le format MySQL est' 2012-07-25 '?. En fait, vous obtenez cette erreur si le sql_mode est traditional/strict mode sinon il suffit de saisir 0000-00-00 et vous avertit: 1265 - Data truncated for column 'col1' at row 1.

1
Jacob

vous devez utiliser le format AAAA-MM-JJ pour insérer la date dans mysql

0
Deepak Goel

Vous pouvez utiliser "DATE" comme type de données lors de la création de la table. De cette façon, vous pouvez éviter l'erreur ci-dessus . Par exemple:

CREATE TABLE Employee (birth_date DATE);
INSERT INTO Employee VALUES('1967-11-17');
0
dgsuraj