1 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
Jack | #1 Posté le 29/8/2017 à 16:33:18 | ||||
bonjour, avec la version 3.10 de gambas voilà le résultat d'une requête mysql sur un champ date. 06/30/2017 02:00:00 Avant j'avais 06/30/2017 Je précise qu'il s'agit bien d'un champ date et non datetime et que phpmyadmin affiche bien 06/30/2017 Quelqu'un a-t-il noté ce problème ? Comment apporter une solution ? Pour un code démocratique nationalisons Gambas. | |||||
Jack | #2 Posté le 29/8/2017 à 19:12:14 | ||||
J'ai résolu mon problème en formatant le résultat de la requête mais je ne crois pas que ce soit très orthodoxe comme manière de faire. Pour un code démocratique nationalisons Gambas. | |||||
davidmue | #3 Posté le 30/8/2017 à 22:22:39 | ||||
Salut, j'ai vu le problème car je m'essaie aux applications Gambas / MySQL ces derniers jours. Pas certain que ça aide mais j'ai remarqué qu'en utilisant date_event TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ou $connection.MySQL.Field.Add("date_event", $connection.MySQL.DataTypes.TimeStamp, False, "CURRENT_TIMESTAMP",, "CURRENT_TIMESTAMP") ça fonctionne. Bonne soirée. David Gambas.. C'est chouette ! | |||||
Jack | #4 Posté le 31/8/2017 à 09:22:58 | ||||
Bonjour Davidmue, merci pour ta réponse, cependant, et peut-être me suis-je mal exprimé, le problème ne vient pas de Mysql mais de Gambas. Le retour fourni par Mysql est bon (06/30/2017) puisque le champ est de type date. C'est Gambas qui devrait normalement fournir une donnée Date alors qu'il fournit une donnée Datetime. Avec les versions antérieures ce problème n'existait pas. Pour un code démocratique nationalisons Gambas. | |||||
jeanyvon | #5 Posté le 31/8/2017 à 10:44:29 | ||||
Gambas? Ma! Et gusto | Hello! Pour un spinbox j'avais besoin d'un N° d'année j'avais donc:
avant mavariable = 2017 maintenant, mavariable = 0:00 j'ai donc fait
Vieillir? On peut retarder mais pas y échapper! | ||||
Jack | #6 Posté le 31/8/2017 à 22:38:47 | ||||
Merci jeanyvon, je ne comprends pas pourquoi cela a été changé. Ca me paraît être une anomalie. Dans mysql il existe un type date bien différencié du datetime et avant la version 3.10, gambas retournait correctement la donnée en fonction du type. Pour un code démocratique nationalisons Gambas. | |||||
davidmue | #7 Posté le 31/8/2017 à 22:52:00 | ||||
Salut Jack, je suis d'accord. C'est probablement un bogue. Gambas stocke les dates au format UTC et MySQL aussi. J'ai aussi constaté le problème avec le type Date et j'ai lu dans l'aide qu'il fallait préférer TIMESTAMP. Il faudrait fournir un code pour montrer le problème je pense. David Gambas.. C'est chouette ! | |||||
davidmue | #8 Posté le 8/9/2017 à 06:20:42 | ||||
Salut C'est effectivement dans les changements depuis Gambas 3.10 : CStr et CDate convertissent tous les deux les valeurs à l'heure UTC en interne. As-tu annoncé le bogue ? Moi, je ne sais pas comment procéder. Voici un code pour la conversion au cas où :
Gambas.. C'est chouette ! | |||||
davidmue | #9 Posté le 13/9/2017 à 22:07:37 | ||||
Salut, après avoir cherché, je n'ai pas pu reproduire le bogue. Je pense qu'il est important de ne pas faire de conversion. Ne pas utiliser CDate(). Ne pas utiliser CStr(). Laissez la DateBox s'occuper de tout ! J'ai mis le code que j'ai utilisé pour tester sur la forge (TestDateTimeMySQL). Pour l'extraction de l'année :
A+ David Gambas.. C'est chouette ! | |||||
gambix | #10 Posté le 1/10/2017 à 08:49:51 | ||||
Faire simple ! | exacte ... même problème qu'avec Jean-Yvon... C'est un bogue qui a été résolu dans la 3.10 mais qui n'est pas rétro actif. Maintenant CDate agit en cohérence avec CStr. Moins de texte dans une signature c'est agrandir son espace. | ||||
1 |