MySQL Forums
Forum List  »  French

Différence de comportement de la fonction NOW()
Posted by: Francis Besset
Date: August 26, 2009 06:10AM

Bonjour,
Je suis utilisateur de l'OS Debian et suite à un crash serveur j'en ai profité pour passer de Debian 4 (Etch) à Debian 5 (Lenny).

Cependant à la réinstallation de mes sites je me suis rendu compte que la fonction NOW() n'a plus le même comportement.

Debian Etch utilise la version 5.0.32-7etch10 et Lenny la version 5.0.51a-24+lenny1.
Savez-vous si entre ses deux versions les développeurs de MySQL ont changés le comportement de la fonction NOW() ?

Je m'explique :
J'ai une table comme celle-ci où on peut y voir le champ date_compte de type date et en index unique.
CREATE TABLE IF NOT EXISTS `compte` (
`ID_compte` int(10) unsigned NOT NULL auto_increment,
`date_compte` date NOT NULL,
`compte` int(10) unsigned NOT NULL,
PRIMARY KEY (`ID_compte`),
UNIQUE KEY `date_compte` (`date_compte`)
);

Pour ajouter une entrée où la modifier je fais cette requête (avec la fonction NOW() de MySQL) :
INSERT INTO compte (date_compte, compte) VALUES(NOW(), 1)
ON DUPLICATE KEY UPDATE compte=compte+1;
Pour cette partie tout se passe très bien. Malgré que NOW() renvoi un datetime si la date est la même alors MySQL fait un update.

Cependant là où sa se complique, c'est pour la lecture de donnée à partir du champ date_compte.
Avec la version 4 de Debian je faisais cette requête :
SELECT compte FROM compte WHERE date_compte=NOW();

Désormais avec la version 5 de Debian, je me retrouve avec aucune entrée.
Je suis donc pour l'instant obligé de faire comme ceci :
SELECT compte FROM compte WHERE DAY(date_compte)=DAY(NOW()) AND MONTH(date_compte)=MONTH(NOW()) AND YEAR(date_compte)=YEAR(NOW());

Là où je m'inquiète c'est que je travail pas mal avec la fonction NOW() sur mes différents sites. Ce qui m'oblige actuellement à modifier toutes mes requêtes.

La question que je me pose c'est de savoir si le nouveau comportement de MySQL avec la fonction NOW() est normal où s'il s'agit d'un bug.

Options: ReplyQuote


Subject
Views
Written By
Posted
Différence de comportement de la fonction NOW()
9635
August 26, 2009 06:10AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.