|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
bonjour,
je cherche depuis tout a l'heur sans rien trouver j'ai une base de donné avec dans une table une colonne Jour au format dd/MM/yyyy. j'essaye d'afficher sur une listview les information de cette table avec une condition, on n'affiche que les donnée avec la date = aujourd'hui. sauf que j'arrive pas a afficher la date d'aujourd'hui correctement (j'ai toujours 02/01/2013 00:00:00 et donc pas possible de comparer) sachant que j'ai mis un format a la date dans la BD en dd/MM/yyyy et que j'ai besoin de ce format pour faire des comparaison. DateTime jour = DateTime.Now.Date; ........WHERE Rdv.Jour = " + jour + ""; ma question est : comment déclarer la date pour l'avoir en dd/MM/yyyy. merci par avance ps : je viens de Vb net et c'etait plus simple avec le : Dim jour As Date = Format(Now, "dd/MM/yyyy") |
|
|
01
|
|
|
#2 |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Bonjour,
c'est pas plus compliqué en C# qu'en VB, au contraire : ou bien Une recherche aurait suffit...
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
Citation:
c'est pour ca que je dis que c'est plus compliqué lol le Rdv.Jour est une date (que je récupere avec un .GetDateTime() ), et ce que tu me propose devient une string et donc ca marche pas, ca ne m'affiche aucun résultat (sans message d'erreur) méme si la date est bien le 02/01/2013 ! |
|
|
|
01
|
|
|
#4 |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Alors je n'ai pas compris ta question, et tu dois être plus clair...
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
ben je veux afficher les résultat d'une requete que si les date sur la colonne Jour = la date d'ajourd'hui
sachat que cette colonne est au format date dd/MM/yyyy en déclarant la date au format DateTime.Now j'ai une date compléte avec l'heur et donc ca ne marche pas j'ai un message d'erreur. si je déclare en DateTime.Now.Date j'ai la date + l'heur en 00:00:00 et la aussi message d'erreur. si je convertir en string, j'ai bien une date en dd/MM/yyyy mais j'ai aucun résultat, je suppose que c'est le fait qu'on compare une datetime avec une string .... donc je cherche a savoir comment faire pour afficher les résultat que si les date sont celle d'aujourd'hui. requeteSQL = "SELECT ............................. WHERE Rdv.Jour = " + jour + ""; le jour doit etre le jour d'aujourd'hui au format dd/MM/yyyy |
|
|
01
|
|
|
#6 |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Ta base de données a bien un format dd/MM/YYYY ou plutôt MM/dd/YYYY. Avec le code de ta requête sql, ton sgbd va convertir la chaine en date et tu n'est pas sûr de savoir quel format il va utiliser. Convertit plutôt en date dans ta requête sql, et utilise DateTime.Today...
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
c'est en dd/MM/yyyy.
et j'ai essayé en DateTime.Today .... ca ne marche pas vu que ca donne par exemple 03/01/2013 15:21:30 .... alors que ma date dans mon sgbd est en 03/01/2013 ..... ps : quand j'affiche les date dans des textbox j'ai bien des dd/MM/yyyy |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 6 558 ![]() |
Citation:
De quel SGBD s'agit il ? peux tu poster le DDL de la table afin qu'on s'assure de ce que tu dis, car cela me semble douteux.
__________________
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça... Une réponse vous a aidé ? utiliser le bouton "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel |
|
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
Citation:
et oui j'ai mis un format a la colonne Jour en Date/Heur dd/MM/yyyy. je ne suis pas un pro de la programmation, donc j'ai mis le format date pour pouvoir travailler deçu plus tard (pour ajouter une condition a la requete Table.Jour > DateTime.Now par exemple, sans le format je pense qu'il faut avant tout récuperer la valeur puis vérifier la condition ce qui est plus long non?) donc en résumé (la tout de suite je ne peux rien vous montrer je n'ai rien sur moi) j'ai ma variable DateTime Jour = DateTime.Now.Date et dans ma requete je dois afficher seulement les résultat quand ma table Rdv.Jour = Jour ...... sauf que ca marche pas parce que Jour = (par exemple) 03/01/2013 16:31:30 si je met ma colonne en Text et que dans ma requete je tape ... WHERE Rdv.Jour = Jour.ToString("dd/MM/yyyy") la ca marche sans probleme. mais si je laisse en text et je veux savoir si Rdv.Jour > Jour.ToString("dd/MM/yyyy") la ca marche pas. donc sans les format pouvez vous me dire comment faire? ps : en Vb.Net ca ne posait pas probleme vu qu'on pouvait déclarer une date deja formaté comme Dim Jour as Date = Format(Now, "dd/MM/yyyy") tout en gardant le format dans Access ! et ma condition WHERE Rdv.Jour = Jour marchait sans probleme. |
|
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 6 558 ![]() |
Citation:
Dans une base de donnée, une colonne n'a pas de format, juste un type. Pour les dates on met un type "Date". La façon dont cette date est restituée à l'affichage (le format) n'est pas du ressort du SGBD. Bon, c'est vrai que, pour Access, comme rien n'est standard avec ce truc, je ne sais pas.
__________________
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça... Une réponse vous a aidé ? utiliser le bouton "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel |
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
Oui désolé j'aurais du mieux expliquer
je voulais dire le format du Type de donnée Date/Heur d'une colonne :p sinon le probleme ne vient pas d'Access normalement vu que ca marchait tres bien avec VB.NET mon souci est de pouvoir avoir une variable DateTime au format dd/MM/yyyy je ne veux pas la convertir en string pour l'afficher en dd/MM/yyyy mais carement avoir une datetime avec ce format je ne sais pas si vous utilisez vbNet mais on peut instancier une variable Date avec ce format sans devoir l'afficher en string. enfin bref, je vais bientot passer sous Sql Server 2008 (ou 2005) j'ai juste un souci avec l'installation je ne sais pas pourquoi ca plante et comme je suis pressé, j'ai commencer avec Access apres, je sais que tout n'est pas fait de la méme façon j'aurais a refaire plein de chose mais j'aurais gagné un peu de temps (j'ai mis quelque truc en commentaire pour etre pret le jour J lol). mais entre temps, et avec une base Access comment vous faite pour comparer les date? en Type Text on peut seulement voir si date1 = date2 ps : le message d'erreur que j'ai quand je laisse la variable Jour en DateTime.Now.Date: Type de données incompatible dans l'expression du critère. |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Bonsoir,
essayes de formatter ta requête SQL comme ça: Code :
requeteSQL = "SELECT ......... WHERE Rdv.Jour = DATE()"; Code :
"SELECT ... WHERE Rdv.Jour = CDate(" + TaDate + ")"; En sql server, oracle et autre "vrai" sgbd (Pas de polémique, Access a des avantages) c'est plus facile pour moi, je dois avouer...
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
00
|
|
|
#13 | |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
Citation:
j'avais deja essayé de la formater autrement, mais méme avec CDate ca donne la méme chose, une date du genre 03/01/2013 00:00:00 .... j'arrive toujours a a supprimer ce 00:00:00 merci pour ton aide quand méme .... je vais essayer la méme chose avec Sql server méme si je ne vois pas pourquoi ca marche pas vu que la méme requete marche avec VB NET et le méme SGBD !! ca fait un moment que j'ai pas utilisé sql server, mais je crois que j'aurai la méme chose non? vu que la date sera en dd/MM/yyyy et que C# me sort des dates en dd/MM/yyyy hh:mm:ss ! |
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Si la comparaison de date ne fonctionne pas avec access, là, c'est au niveau de ton sgbd que tu as un soucis.
As-tu essayé de lancer la requête sql en access et quels résultats obtiens-tu? Par la même occasion profites en pour nous poster le code de ta méthode de récupération des données depuis la requête. Ce comportement n'est pas normal, et nous n'avons pas toutes les informations nécessaires pour t'aider.
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
00
|
|
|
#15 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
je récupere les données avec cette requete qui marche tres bien pour tout le reste :
Code :
|
||
|
|
00
|
|
|
#16 | ||
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Cela pourrait mieux fonctionner comme ça... Mais j'ai l'impression que tu n'as pas pris en compte nos conseils...
Code :
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
||
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
et non comme j'ai dis plus haut, j'ai tout essayé.
le jour.ToString("dd/MM/yyyy") convertir la date de (par exemple) 05/01/2013 12:54:30 en string 05/01/2013 .... et le fait de la passer sous CDate la convertis de nouveau en date mais en 05/01/2013 00:00:00 ..... et c'est toujours ce 00:00:00 qui pose probleme ! vu que la comparaison se fait entre 05/01/2013 et 05/01/2013 00:00:00 ce qui est apparemment pas possible moi ce que je veux avoir c'est une variable datetime avec seulement dd/MM/yyyy sans l'heur ni méme 00:00:00 ! bizarre qu'il n'y est pas d’équivalent vb net en c# ! |
|
|
01
|
|
|
#18 | ||
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
De quel type est ton champ jour en base de données?
C'est un varchar? c'est un datetime? Si c'est un datetime, quelle est exactement sa valeur en base? Parce qu'un datetime en base de données est représenté avec une heure, alors si tes enregistrements possèdent une heure, c'est normal que cela ne fonctionne pas. Il faudra alors tester que la date est comprise entre "03/01/2013 00:00:00" et "03/01/2013 23:59:59" Là, tu dois confondre, un datetime est un type. Il représente une date et une heure quoi que tu aies visuellement!!! Code :
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
||
|
|
00
|
|
|
#19 | |
|
Membre Expert
![]() Consultant informatique Inscription : février 2006 Messages : 731 ![]() |
Citation:
C'est absurde!!!
__________________
Un âne se croit savant parce qu'on le charge de livres (proverbe américain) N'oubliez pas de avant de ![]() Pas de question techniques par MP, c'est contre la philosophie du forum
|
|
|
|
10
|
|
|
#20 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 28 ![]() |
alors dans mon BD la colonne jour est en Date/Heur avec un format dd/MM/yyyy
toute les date dans cette colonne sont enregistré dans ce format et oui c'est bien de dire qu'une datetime a une date et une heur mais moi je veux avoir que la date sans le 00:00:00 ! je vais quand méme essayer d'ajouter Code :
BETWEEN '" + jour + " 00:00:00' AND '" + jour + " 23:59:59' ****edite *** non au fait ca peut pas marcher vu que jour = jour + 00:00:00 donc si tu rajoute 00:00:00 ca fait dd/MM/yyyy 00:00:00 00:00:00 je continue de chercher |
|
|
01
|
Copyright © 2000-2013 - www.developpez.com