gargourifahmi
Messages postés31Date d'inscriptiondimanche 23 juillet 2006StatutMembreDernière intervention 3 décembre 2008
-
22 nov. 2006 à 00:42
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
26 nov. 2006 à 02:46
Salut,
J'ai besoin d'une requete sql qui doit comparer la date de naissance des clients d'une table avec la date actuelle. cette version n'est pas acceptée en vb.net2003:
sql = "select * from Customers where date de naissance <= CONVERT(DATETIME,'" & current_date & "',103)"""
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 nov. 2006 à 03:52
Salut
Déjà dit maintes et maintes fois :
Si le champ "date de naissance" compose réellement des espaces, il faut encadrer le nom du champ avec des crochets [ et ]
Si le champ est, dans la définition de la DB, un champ de type 'date générale', il faut faire les tests avec des # comme encadrement.
Ce qui donnerait :
sql = "select * from Customers " & _
" where [date de naissance] <= '#' + CONVERT(DATETIME, current_date, 103) + '#'"
Mais il faudra vérifier à quel monde appartient la variable 'current_date' :
Appartient-elle à ton programme VB ? ou à SQL ?
Si c'est une variable VB, il faudra revoir la syntaxe, du genre :
" where [date de naissance] <= '#' + CONVERT(DATETIME, " & current_date & ", 103) + '#'"
Astuce si tu as à faire avec des champs de type texte :
Il faut bien dissocier les séparateurs de VB avec ceux de SQL.
Puisqu'il y a confusion possible entre les " de VB et ceux de SQL, SQL autorise d'utiliser les symboles ' comme encadrement des chaines. De cette manière, la syntaxe VB est allégée, plus besoin de doubler les ".
Exemple : sql "select * from maTable Where Nom 'toto la riflette'"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
gargourifahmi
Messages postés31Date d'inscriptiondimanche 23 juillet 2006StatutMembreDernière intervention 3 décembre 2008 25 nov. 2006 à 22:36
salut Jack,
Si vous etes la ou personne qui sait une solution a ce pb de requetes date en vb.net
voila j'ai essayé cette requete mais ça ne marche pas encore
sql "select Customers.* from Customers where [date de naissance] '#' + CONVERT(DATETIME, '" & TextBox1.Text & "', 103) + '#'"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 nov. 2006 à 02:46
Salut
NB : je demande à ce qu'on ne m'envoie pas de message privé. Le fait de réponse à ce post suffit à m'avertir.
La question est : Comment as-tu déclaré ton champ [date de naissance] dans ta DB ?
Si tu utilises la conversion DATETIME sous SQL, il faut impérativement que ton champ soit déclaré en type date
La conversion SQL n° 103 = "dd/mm/yyyy"
A mon avis, il faut demander cette conversion à VB, ce sera plus simple :
Dim maDate As String
maDate = Format(TextBox1.Text, "dd/mm/yyyy")
Ensuite, dans ta syntaxe SQL, si ton champ est déclaré en type :
- Date : where [date de naissance] = #" & maDate & "#"
- Texte : where [date de naissance] = '" & maDate & "'"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on