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
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;
Généralement, mysql utilise ce format de date 'Y-m-d H: i: s'
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'),...);
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
.
vous devez utiliser le format AAAA-MM-JJ pour insérer la date dans mysql
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');