Différence de comportement de la fonction NOW()
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.
Subject
Views
Written By
Posted
Différence de comportement de la fonction NOW()
9757
August 26, 2009 06:10AM
3413
August 26, 2009 02:29PM
3490
August 27, 2009 05:25AM
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.