Recherche d'un champs déclarer smalldatetime

Résolu
hbvb6 Messages postés 40 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 3 juin 2009 - 9 août 2008 à 17:42
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 9 août 2008 à 20:51
salut
j'utilise une base de données SQL server  , dans la  table (etatser)  j'ai un champs ( dated) déclaré smalldatetime
j'ai enregistré dans le champ (dated)  les enregistrements suivants :
   15/07/2008
   16/07/2008
   17/07/2008
   26/07/2008
   27/07/2008
j'ai ma requete sql suivant
   select * from etatser where dated ike '"& 1 &"%"
normalement j'ai les resultats sauivantes:
   15/07/2008
   16/07/2008
   17/07/2008
mais le probleme que j'ai aucune resultat

SVP aide moi

merci d'avance

3 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 août 2008 à 18:10
Comme tu le dis, ton champ est au format smalldatetime, or LIKE marche avec des chaines de caractères.

Si une convertion implicite est habituellement faite, ici, sur des dates, la conversion implicite te renvoie surrement la date au format américain donc 2008-07-15 au lieu de 15/07/2008

il faut donc que tu fasse toi-même la conversion pour avoir la date dans le bon format.

select * from etatser where CONVERT(varchar,dated,103) like '1%'

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
hbvb6 Messages postés 40 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 3 juin 2009
9 août 2008 à 19:02
merci pour la solution, ça  a bien marché

j'ai un autre probleme si tu peux m'aider encore
si j'affecte une date a un champs smalldatetime aprés un Addnew j'ai le message suivant dans l'execution de update
 exemple :

etatser.addnew
etatser.Recordset.AddNew
etatser.Recordset("dated") = "15/07/2008"
etatser.Recordset.Update

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion from datetime data type to smalldatetime data type resulted in a smalldatetime overflow error.

merci d'avance
HB
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 août 2008 à 20:51
Es-tu sur de ton code ? je trouve la syntaxe un peu bizarre, bien que je ne ai plus l'habitude d'utiliser l'accès aux données avec VB6

En tout cas en utilisant ADO avec le code ci-dessous, j'arrive pas à reproduire ton problème :
----
   Dim cnn1 As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim strCnn As String

   Set cnn1 = New ADODB.Connection
   strCnn = "driver={SQL Native Client};server=localhost;database=TEST;Trusted_Connection=yes;"
   cnn1.Open strCnn
       
   Set rst = New ADODB.Recordset
   rst.CursorType = adOpenKeyset
   rst.LockType = adLockOptimistic
   rst.Open "Test1", cnn1, , , adCmdTable

   rst.AddNew
   rst!dated = "15/07/2008"
   rst.Update
   
   rst.Close
   cnn1.Close
, ----
, ----
[code.aspx?ID=41455 Coloration Syntaxique pour VB6 By ]

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous