8791 sujets

Développement web côté serveur, CMS

Bonsoir c'est affreux! Dans une table MySQL j'ai un champ "date" de type bigint (15). Avant d'inserer un record dans cette table je fais un $t=time() puis je balance $t dans le champ "date". Pour etre sur que ma requete est correcte je l'imprime avant insertion et je vois bien la valeur de la date en cours (en secondes).

Mais en pratique, la valeur inserée dans "date" est toujours la meme, le 4 aout 2009 ! Dois-je consulter un exorciste ?
Modifié par apericube (02 Feb 2010 - 10:17)
Salut,

tout d'abord ton titre a beau être amusant il est tout sauf évocateur comme cela est demandé dans les règles du forum. Si quelqu'un fait une recherche sur le même thème que toi il a peu de chances de retrouver ce sujet donc merci de le modifier. Smiley cligne

apericube a écrit :
Bonsoir c'est affreux! Dans une table MySQL j'ai un champ "date" de type bigint (15)
C'est vrai que c'est affreux ! Smiley scared
Un champ de type date devrait être de type date. Non seulement parce que cela permet d'utiliser une foultitude de fonctions MYSQL mais aussi parce qu'il suffit de les alimenter avec NOW() au moment de l'INSERT (pour plus d'infos voir ce sujet).
Pas mal le type DATE mais ca tient pas compte de l'heure si ? Parce que dans ma table je vois que mes dates sont au format XXXX-XX-XX maintenant.
Le type date c'est la date sans lheure. C'est le type datetime qu'il faut utiliser pour avoir aussi l'heure, précis à la seconde.

Mais fais quand même attention avec le type date ou datetime : il est pas toujours très pratique à utiliser dans les scripts php.
Si tu as besoin des fonctions temporelles de MySQL, le type date ou datetime est génial. Si tu ne fais que de la manipulation basique en php, il ne t'apporte pratiquement aucun bénéfice par rapport aux int.
Hello,

QuentinC a écrit :
Mais fais quand même attention avec le type date ou datetime : il est pas toujours très pratique à utiliser dans les scripts php.
Bof, un petit coup de DATE_FORMAT et le tour est joué. Smiley cligne

@apericube > merci de modifier ton titre.
Ca n'explique pas pourquoi MySQL enregistrait toujours la meme valeur dans mon champs date en type BIGINT alors que ma requete specifiait une valeur toujours differente (time()) Smiley ohwell
apericube a écrit :
Ca n'explique pas pourquoi MySQL enregistrait toujours la meme valeur dans mon champs date en type BIGINT alors que ma requete specifiait une valeur toujours differente (time()) Smiley ohwell
Non effectivement : il faudrait voir ton code pour le savoir.

Un petit exemple :
$t = time();
mysql_query('Insert Into matable Set datebig = '.$t);
$result = mysql_query('Select datebig From matable Order By datebig DESC Limit 1');
$datebig = mysql_result($result, 0);
setlocale(LC_TIME, 'french', 'fr_FR');
echo date('d F Y / H:i:s', $datebig);