Filtrer Date sqlCE

Signaler
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Bonjour,

Je voudrais filtrer des dates de la facon suivante:
Dim search As Date = mcCalendar.SelectionStart
ContactsBindingSource.Filter = "dBirthday LIKE '" + Format(search, "dd MMMM") + " %'"


Si dBirthday est un String, cela marche. Mais, dans mon cas, j'ai dBirthday comme DateTime.
Et, si je comprend bien la propriete Filter compare deux String.

Comment puis je faire pour filtrer des dates et non des strings?

Pour essayer de mieux expliquer ce probleme, voici plus d'informations:
1- J'utilise une base sqlCE, avec dBirthday declare comme DateTime.
2- Deux cultures sont possibles (en et fr), donc je peux sauver la date sous deux formes differentes dependant de la culture: 3 January 2000 ou 3 Janvier 2000, d'ou un melange qui empeche la comparaison-filtrage de deux dates en string. Par consequent, j'essaye de declarer en Date ou DateTime pour eviter ce probleme.
Et la, je bloque. Peut-etre que je complique???

Esperant avoir ete assez clair...
A+
JLuc01

5 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Bonsoir,

Si j'ai bien compris, tu veux tous les ??? sur un jour et un mois définis. Donc un ??? par an.
Tu devrais plutôt utiliser les fonctions de traitement de dates DAY et MOUNTH: http://msdn.microsoft.com/en-us/library/ms186724.aspx

_____________
Kenji
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Salut,

Donc, je devrais me diriger vers les proprietes DAY et MONTH...
Mais, quel est la meilleure facon d'enregistrer/declarer une Date dans une base de donnee? String ou DateTime?

Dans mon cas, DateTime parait le plus approprie pour eviter un melange de date en francais et en anglais. Mais, dans ce cas la, je ne peux plus utiliser la methode Filter.

JLuc01
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
La meilleur façon ? Tout dépend du nombres de données et du nombres de requêtes. Pour les grosses bases de données, tout est en INT format (OADate) liés à une table de dates prédéfinis.
Sinon, pour une utilisation normal, certainement DATETIME.

Tu ne peux pas faire un truc du genre (pas testé) :
ContactsBindingSource.Filter String.Format("MONTH(dBirthday) {0} AND DAY(dBirthday) = {1}", search.Month, search.Day)


_____________
Kenji

Bonjour,

Dans l'aide. Eh oui, encore et encore et encore
dans l'aide.

Datetime.tolongdatestring
DateTime.ToLongTimeString
DateTime.ToShortDateString
DateTime.ToShortTimeString
DateTime.ToString
DateTime.ToString(IFormatProvider)
DateTime.ToString(String, IFormatProvider)
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Bonsoir,

Charles, je pense que tu m'a mis sur la bonne voie. Je dois jouer avec DAY, MONTH and YEAR pour pouvoir recuperer, filtrer, comparer ou changer ma date quelquesoit la culture. Juste a trouver la bonne syntaxe.

L'aide peut en effet etre tres utile, si toutefois on arrive a la comprendre. Et pour les dates, il faut vraiment savoir ce qu'on cherche, sinon on peut tourner en rond pendant un moment.

Merci encore, je vais essayer d'approfondir.

A+
JLuc01