la date en sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : la date en sql

Re: la date en sql

par Ryle » 25 févr. 2011, 21:39

On doit aussi pouvoir le faire simplement en sql en découpant la chaine et en stockant le résultat dans un champ date :
UPDATE ma_table
SET mon_champ_date = concat(
	SUBSTRING(mon_champ_varchar,-4)
	, '-'
	, CASE SUBSTRING(mon_champ_varchar,2,3)
		WHEN 'jan' THEN '01'
		WHEN 'fev' THEN '02'
		WHEN 'mar' THEN '03'
		...
	END CASE
	, '-'
	, SUBSTRING(mon_champ_varchar,0,2)
);
Une fois que c'est fait, tu peux supprimer le champ varchar et n'utiliser que le champ date :)

Re: la date en sql

par moogli » 25 févr. 2011, 21:30

et pour l'affichage mysql offre la fonction date_format :)

@+

Re: la date en sql

par AB » 25 févr. 2011, 17:05

Même si MySQL essaye d'interpreter les valeurs sous différents formats, il s'attend toujours à ce que l'année soit dans la partie gauche de la valeur. Les dates doivent êtres données sous la forme année-mois-jour (exemple : 98-09-04), au lieu de mois-jour-année ou jour-mois-année qui sont très utilisés ailleurs (comme 09-04-98 ou '04-09-98').
http://dev.mysql.com/doc/refman/5.0/fr/ ... types.html

Re: la date en sql

par Triflip » 25 févr. 2011, 12:53

Oui sur ce lien http://php.net/manual/fr/function.strtotime.php
Problème timestamp à besoin de la date et de l'heure! Moi je veux juste convertir le mois fr (ex: janv ) en 01. Et sa pour plusieurs colonne d'une table contenant 2000 lignes.
J'ai essayé tout ce que j'ai pu mais la ej crois qu'il n'y à pas de solution.
Les données de ma base provient d'import de fichiers exel. J'ai essèyé de modifier le type de donnée dans exel , donc date pour obtenir 10/01/2011 au lieu de 10-janv-2011 mais quand j'importe sa dans ma base j'obtient 39094.
Pfff je désespère sur ce coup là!

Re: la date en sql

par charabia » 25 févr. 2011, 12:37

As-tu lu un peu la documentation de strtotime ?
strtotime() essaye de lire une date au format anglais dans la chaîne time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC)
L'utilisation du format timestamp pour les dates est très facile si tu veux ensuite faire des opérations sur les dates. Si tu n'as pas beaucoup de données, change de type.

Re: la date en sql

par Triflip » 25 févr. 2011, 12:13

Je viens tout d'abord de tester sa : <?php echo strtotime("10 September 2001"), "\n";?>
Es sa me donne : 1000072800 sa ne veut pas convertir en 10-09-2001

Re: la date en sql

par xTG » 25 févr. 2011, 11:44

Boudiou on a pas inventé le type date pour rien...

Tu peux faire un script PHP récupérant toutes les dates, les passant dans strtotime() et les remettre dans un champs de type DATE.
Le seul soucis que je vois à cela est que tu as un format français... Or je ne suis pas sûr que strtotime() arrive à te le prendre en compte.
Il faudra peut être passer un filtre (str_replace() par exemple) pour transformer les mois français en mois anglais.

la date en sql

par Triflip » 25 févr. 2011, 10:45

Bonjour,
J'ai dans ma BDD des tuples qui sont des dates au format ex: 17-janv-2011 mais j'aimerais faire des calcules sur ces dates en php. Comment puis-je convertir ces dates en 17/01/2011 ? Dans ma table ces dates sont en VARCHAR(25) J'ai essayais le type DATE mais je n'obtient que dès 00-00-0000.
merci pour votre aide :priere: