web-dev-qa-db-fra.com

Formats de date MySQL - difficulté Insertion d'une date

J'essaie de répondre à une question que j'ai posée hier, où je voulais savoir comment interroger une date dans un format différent. Mais maintenant, j'essaie de faire un insert en utilisant cette méthode (voir ci-dessous), mais je ne peux pas le faire fonctionner. J'ai vérifié le manuel mais ce n'est pas convivial pour les débutants!

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y');
43
Phil

Mettez la date entre guillemets simples et déplacez la parenthèse (après le 'yes') À la fin:

INSERT INTO custorder 
  VALUES ('Kevin', 'yes' , STR_TO_DATE('1-01-2012', '%d-%m-%Y') ) ;
                        ^                                     ^
---parenthesis removed--|                and added here ------|

Mais vous pouvez toujours utiliser des dates sans la fonction STR_TO_DATE(), utilisez simplement le format (Y-m-d) '20120101' Ou '2012-01-01'. Vérifiez les documents MySQL: Littéraux Date et Heure

INSERT INTO custorder 
  VALUES ('Kevin', 'yes', '2012-01-01') ;
107
ypercubeᵀᴹ

On dirait que vous n'avez pas encapsulé correctement votre chaîne. Essaye ça:

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y');

Vous pouvez également effectuer les opérations suivantes:

INSERT INTO custorder VALUES ('Kevin','yes'), '2012-01-01';

Cependant, je ne suis pas sûr que le code SQL ci-dessus est valide et vous souhaiterez peut-être déplacer la partie de la date dans les crochets. Si vous pouvez fournir l'erreur exacte que vous obtenez, je pourrais peut-être aider plus directement avec le problème.

10
Gleeb

Le format de date pour la requête d’insertion mysql est YYYY-MM-DD

exemple:

INSERT INTO table_name (date_column) VALUE ('YYYY-MM-DD');
6
Sachin Mallade

Un ajout aux réponses précédentes depuis que je suis tombé sur cette préoccupation:

Si vous voulez vraiment insérer quelque chose comme 24-May-2005 à votre DATE , vous pouvez faire quelque chose comme ceci:

INSERT INTO someTable(Empid,Date_Joined)
VALUES
    ('S710',STR_TO_DATE('24-May-2005', '%d-%M-%Y'));

Dans la requête ci-dessus, veuillez noter que s'il s'agit de May (c.-à-d. Le mois en lettres), le format doit être %M.

NOTE : J'ai essayé avec la dernière version 8.0 de MySQL et ça marche!

2
Kulasangar

Lorsque vous utilisez une variable de type chaîne dans PHP contenant une date, la variable doit être placée entre guillemets:

$NEW_DATE = '1997-07-15';
$sql = "INSERT INTO tbl (NEW_DATE, ...) VALUES ('$NEW_DATE', ...)";
0
George Fisher