[Fonction cdate/ VB6 MySQL]

Bonjour tout le monde
Je developpe une application en VB6/MySQL j’ai un probleme pour la fonction Cdate que j’utilise dans ma requete SQL elle ne fonctionne pas ma requete est la suivante:


SQLOp = "SELECT HistoriquePointages.Operation,Max(cdate(HistoriquePointages.DatePointage))AS MaxDeDatePointage, Operations.designation"
 SQLOp = SQLOp & " FROM HistoriquePointages, OF, Operations"
 SQLOp = SQLOp & " Where (HistoriquePointages.OF = OF.OF)"
 SQLOp = SQLOp & "and (HistoriquePointages.Operation = Operations.Operation)"
 SQLOp = SQLOp & "and (OF.OF = Operations.OF)"
 SQLOp = SQLOp & "and ((HistoriquePointages.CodeEmploye) = '" & Personnel.Code & "')"
 SQLOp = SQLOp & "and ((OF.OF) = '" & OF.OF & "')"
 SQLOp = SQLOp & " GROUP BY HistoriquePointages.Operation, Operations.designation, HistoriquePointages.CodeEmploye, OF.OF"
 'SQLOp = SQLOp & " Having (((HistoriquePointages.CodeEmploye) = '" & Personnel.Code & "') AND ((OF.OF) = '" & OF.OF & "'))"
 SQLOp = SQLOp & " ORDER BY Max(cdate(HistoriquePointages.DatePointage)) DESC;"

connaissant que le champs DatePointage de la table HistoriquePointages est de type texte mais il contient une date
la requete fonctionne en enlevant la fonction cdate mais elle ne marche pas avec cette fonction je suis sur que la cause est de l’erreur est dans la fonction cdate
Merci pour toute collaboration.

Sans m’y connaître en VB, je peux déjà te dire où est ton problème :

http://dev.mysql.com/doc/mysql/search.php?..0&doc=1-4.1&m=o

Ca n’existe simplement pas.

Donc, tu dois confondre code SQL et code VB.

Autrement :

SQLOp = SQLOp & " ORDER BY Max(cdate(HistoriquePointages.DatePointage)) DESC;"

Ca ne risque pas de marcher. On ne tri pas par rapport à une valeur, mais à une (ou des) colonnes.

Merci bien pour votre reponse , je viens de savoir que ça n’existe pas de Cdate dans MySQL moi je veux dire que le champ DatePointage de ma table est une date mais il est de type chaine dans ma base de données MySQL lorsque je fait un order by sur ce champ moi je pense MySQL va faire le tri en le considerant comme un texte est non comme une date le resulatat sera eronné je pense? toute les valeurs qui sont stockées dans cette colonne sont des dates mais ils sont traitées comme chaine je crois? avez vous idée si ça sera le bonne resultat si j’enleve la fonction cdate de ma requete?
Merci de bien vouloir continuer la discussion
@+

Je ne sais pas ce que tu veux, réellement.

En mySQL (cf. doc) tu as des fonctions sur les dates, et tu dois pouvoir "caster" (transformer) un texte en une date.

Si HistoriquePointages.DatePointage est de type texte, et non date, ça va poser problème, c’est sûr. Deux choix : changer le type du champ, ou utiliser un alias et trier sur cette alias :

-> DATETIME(HistoriquePointages.DatePointage) AS DatePointageDate
ORDER BY DatePointageDate DESC

(bien sûr, je ne pense pas que cela fonctionnera, j’ai pas la doc sous les yeux)

Merci bien pour votre reponse j’ai opté pour votre solution concernant l’utilisation des alias mais il ya encore une erreur concernant la fonction de conversion de la chiane en date Datetime n’est pas la bonne fonction c’est en fait un type , j’ai vu le site de manuel MySQL mais je trouve pas la bonne fonction j’ai essayé pleine de fonction mais ça ne fonctione pas , la majorité travaille sur un type date, quelqu’un pourez m’aider sur ce point parce que je me plante dans mon projet.
pouvez quelq’un pourrais me donner un lien ou un exemple de conversion de la chaine qui fonctionne sous MySQL
Merci pour tout aide
Merci de vouloir continuer la discussion
@+

Désolé :slight_smile: je connais pas les cast en mySQL. Juste qu’utiliser un champ date (et pas un texte contenant une date, CQFD) est plus approprié.

Bonjour
Merci pour votre aide , ma question reste dans l’attente d’une reponse de la part de tous le monde du Forum
svp aidez moi parce que la je me bloque et je ne peux plus avancer dans mon projet
Merci pour tout aide
@+

comme j’ai dis, tu as toujours la solution de changer ton champ texte en champ date. (tu peux le faire en deux étapes)