2010-10-05 5 views
0

Je suis en train de stocker la date dans une table SQL, mais je veux formaté en tant que tel:virgules stocker dans la base de données MySQL

jour Mois, année 10 Octobre, 2010 Mais chaque fois que je fais l'appel sql , 2010 est perdu. Comment puis-je réparer cela?

$eventdate = "October 10, 2010"; 
$sql = "INSERT INTO `tims`.`blog` (`title`, `date`, `post`, `author`, `approved`) \n" 
      . "VALUES (
       '" . mysql_real_escape_string($_REQUEST['title'])  . "', 
       '" . mysql_real_escape_string(addslashes($eventDate)) . "', 
       '" . mysql_real_escape_string($_REQUEST['TextArea1']) . "', 
       '" . mysql_real_escape_string($_REQUEST['author']) . "', 'False')\n"; 

//echo $sql; 
$qry = mysql_query($sql) or die(mysql_error()); 
+7

Pourquoi voulez-vous stocker un * formaté * Date ?! Vous êtes censé stocker des dates dans les colonnes 'date' ou' datetime', qui n'ont pas de formatage. Le formatage n'est pertinent que lorsque vous voulez * sortir * la date. Quel type de colonne essayez-vous de stocker? – deceze

+1

Je vous recommande de stocker la date en tant que datetime plutôt qu'en tant que varchar/texte. – Tim

+1

L'astuce est juste de le stocker dans le format approprié pour une date MySQL ("AAAA-MM-JJ"), car il rendra les fonctions de date plutôt faciles, et appelez DATE_FORMAT lors de la récupération si vous désirez un autre formatage. – Wrikken

Répondre

1

Vérifiez la largeur de la colonne. Vous avez besoin d'un VARCHAR (n) comme type de données pour cette colonne et n doit être la longueur du nom du mois le plus long de l'année + 9. Ce n'est pas une bonne idée de stocker les dates si vous voulez indexer ou trier eux, mais cela devrait fonctionner.

Pour voir la structure de la table:

show create table `tims`.`blog`; 
+0

Merci. C'était mon problème, je n'avais pas fait le VARCHAR assez longtemps. Y a-t-il un inconvénient à le faire plus longtemps que ce dont vous aurez besoin? comme disons 255, la base de données va-t-elle utiliser plus de mémoire ou quoi que ce soit? – TechplexEngineer

+0

Je rends généralement mes colonnes varchar 3x de la taille dont je pense qu'elles ont besoin. Je ne sais pas si c'est mal vu. –

3

Je suis d'accord avec le reste, vous devez utiliser la colonne de date dans une table pour le dossier et alors vous devez l'afficher dans votre application, vous formatez juste la date retracée que vous voulez comme « 10 Octobre , 2010 ". S'il vous plaît ne pas stocker la date en tant que texte varchar, base de données relationnelle ont la simplicité de stocker la date pour vous et avec SQL, vous pouvez mettre en forme la date de toute façon que vous souhaitez l'afficher.

+0

+1: Pour la santé mentale, sachant ce qui devrait être laissé à la présentation. –

Questions connexes