Après avoir cherché Google, je ne trouve pas le moyen de créer une nouvelle table avec une colonne DATETIME
avec le format par défaut défini sur 'DD-MM-YYYY HH:MM:SS
'.
J'ai vu un tutoriel dans lequel cela a été fait dans phpmyadmin
alors je suppose que je pourrais utiliser mysql via la ligne de commande et obtenir la même chose lors de la création de ma nouvelle table
CREATE TABLE ()
Merci d'avance
"MySQL récupère et affiche les valeurs DATETIME au format 'AAAA-MM-JJ HH: MM: SS." Ceci provient du site mysql. Vous pouvez stocker uniquement ce type, mais vous pouvez utiliser l'une des nombreuses fonctions de format de l'heure pour le modifier, lorsque vous devez l'afficher.
Fonctions heure et date de Mysql
Par exemple, l’une de ces fonctions est la DATE_FORMAT , qui peut être utilisée pour aimer ainsi:
SELECT DATE_FORMAT(column_name, '%m/%d/%Y %H:%i') FROM tablename
Utilisez la fonction DATE_FORMAT pour changer le format.
SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y')
SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename
Reportez-vous à DOC pour plus de détails
j'ai utilisé la ligne suivante de code et cela fonctionne très bien Merci .... @Mithun Sasidharan **.
SELECT DATE_FORMAT (nom_colonne, '% d /% m /% Y') FROM nom_table
**
Comme d'autres l'ont expliqué, ce n'est pas possible, mais voici une solution alternative, qui nécessite un peu d'ajustement, mais qui fonctionne comme une colonne datetime.
J'ai commencé à penser à comment rendre le formatage possible. J'ai une idée. Qu'en est-il de faire déclencheur pour cela? Je veux dire, ajouter une colonne de type char
, puis mettre à jour cette colonne à l'aide d'un déclencheur MySQL. Et ça a marché! J'ai fait des recherches sur les déclencheurs et finalement, j'ai trouvé ces requêtes:
CREATE TRIGGER timestampper BEFORE INSERT ON table
FOR EACH
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s');
CREATE TRIGGER timestampper BEFORE UPDATE ON table
FOR EACH
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s');
Vous ne pouvez pas utiliser TIMESTAMP
ou DATETIME
en tant que type de colonne, car ils ont leur propre format et ils se mettent à jour automatiquement.
Alors, voici votre alternative timestamp ou alternative datetime! J'espère que cela a aidé, au moins je suis content d'avoir réussi.
Je suis presque sûr que vous ne pouvez pas changer le format de date/heure dans mysql. Le paramètre phpmyadmin applique probablement un format personnalisé lorsqu’il lit la date et l’heure (en utilisant DATE_FORMAT ou quelque chose provenant de php). Peu importe le format utilisé par la base de données, mettez-le en forme dans l'application pour l'afficher à votre guise.
Le formatage de la date est une tâche assez commune. En général, j'aime bien le résumer en code d'internationalisation ou, si vous n'avez pas besoin de traiter i18n, en une bibliothèque d'utilitaires de date commune. Cela aide à garder les choses cohérentes et facilite les changements ultérieurs (ou ajoute le support i18n).
Non vous ne pouvez pas; datetime sera stocké au format par défaut uniquement lors de la création de la table. Vous pourrez alors modifier le format d'affichage dans votre requête select
comme vous le souhaitez à l'aide de Fonctions date/heure Mysql
Dim x as date
x = dr("appdate")
appdate = x.tostring("dd/MM/yyyy")
dr est la variable de datareader
Cela ne peut pas être fait pour la table; En outre, vous ne pouvez même pas modifier cette valeur par défaut.
La réponse est une variable serveur datetime_format , elle est inutilisée.
essaye ça:
DATE NOT NULL FORMAT 'YYYY-MM-DD'