Mysql: paramétrez le format de DATETIME à 'DD-MM-YYYY HH: MM: SS' lors de la création d'une table

après googler autour, Je ne peux pas trouver un moyen de créer une nouvelle table avec un DATETIME colonne avec le format par défaut réglé sur '

j'ai vu un tutoriel dans lequel il a été fait dans phpmyadmin donc je soupçonne que je pourrais utiliser mysql via la ligne de commande et atteindre la même chose lors de la création de ma nouvelle table avec

CREATE TABLE ()

Merci d'avance

30
demandé sur Ghostman 2011-12-01 11:50:46

9 réponses

" MySQL récupère et affiche les valeurs de DATETIME dans le format 'YYYY-MM-JJ HH:MM:SS'." Ceci vient du site mysql. Vous pouvez stocker que ce type, mais vous pouvez utiliser l'un des nombreux format de temps fonctions de modifier, lorsque vous avez besoin de l'afficher.

Mysql Heure et de la Date de fonctions

par exemple, une de ces fonctions est le DATE_FORMAT, qui peut être utilisé comme suit:

SELECT DATE_FORMAT(column_name, '%m/%d/%Y %H:%i') FROM tablename
47
répondu Mirko Akov 2017-04-03 20:21:25

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

Consulter DOC pour plus de détails

16
répondu Mithun Sasidharan 2011-12-01 07:52:22

comme d'autres l'ont expliqué, ce n'est pas possible, mais voici une solution alternative, cela nécessite un peu de réglage, mais cela fonctionne comme la colonne datetime.

j'ai commencé à penser, comment je pouvais rendre le formatage possible. J'ai une idée. Ce sujet de faire trigger? Je veux dire, ajouter une colonne avec le type char, puis mise à jour de cette colonne en utilisant un déclencheur MySQL. Et ça a fonctionné! J'ai fait quelques recherches liées à des déclencheurs, et enfin de venir avec 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 comme type de colonne, parce qu'ils ont leur propre format, et ils se mettent à jour automatiquement.

donc, voici votre timestamp alternatif ou datetime alternative! J'espère que ça a aidé, au moins je suis content que ça marche.

5
répondu aksu 2014-01-24 17:18:33

j'ai utilisé la ligne de code suivante & cela fonctionne très bien merci.... @Mithun Sasidharan **

SELECT DATE_FORMAT (column_name,' %d/%m/%Y') FROM tablename

***

5
répondu Datta Salunkhe 2014-03-21 13:28:30

je suis assez certain que vous ne pouvez pas changer le format datetime dans mysql. Le paramètre phpmyadmin applique probablement un format personnalisé lors de la lecture de la datetime (en utilisant DATE_FORMAT ou quelque chose de php). Peu importe le format de la base de données, le format de l'application pour l'afficher comme vous le souhaitez.

formatage de Date est une tâche assez commune. J'aime généralement l'abstraire dans le code d'internationalisation ou, si vous n'avez pas besoin de traiter avec i18n, dans un date de l'utilité de la bibliothèque. Cela aide à garder les choses cohérentes et rend plus facile de changer plus tard (ou d'ajouter le support i18n).

4
répondu colithium 2011-12-01 08:47:00

Non vous ne pouvez pas; datetime sera stocké dans le format par défaut seulement tout en créant la table et puis vous pouvez changer le format d'affichage en vous select interrogez comme vous voulez en utilisant le Mysql Date De Fonctions De Temps

2
répondu Rahul 2011-12-01 08:06:46

cela ne peut pas être fait pour la table; en outre, vous ne pouvez même pas changer cette valeur par défaut du tout.

la réponse est une variable de serveur date_time_format, il n'est pas utilisé.

2
répondu Devart 2011-12-01 08:29:33
Dim x as date 

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

dr est la variable de datareader

2
répondu ynot 2013-04-19 15:57:44

essaye ceci:

DATE NOT NULL FORMAT 'YYYY-MM-DD'
0
répondu GigolNet Guigolachvili 2013-08-18 13:55:53