web-dev-qa-db-fra.com

Mysql: Configurez le format de DATETIME sur 'JJ-MM-AAAA HH: MM: SS' lors de la création d'une table

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

30
Iam Zesh

"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
51
Mirko Akov

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

16
Mithun Sasidharan

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

**

5
Datta Salunkhe

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.

5
aksu

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).

4
colithium

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

2
Rahul
Dim x as date 

x = dr("appdate")
appdate = x.tostring("dd/MM/yyyy")

dr est la variable de datareader

2
ynot

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.

2
Devart

essaye ça:

DATE NOT NULL FORMAT 'YYYY-MM-DD'
0